Skip to main content

Full text of "Amstrad CPC464 Guia del Usuario (1985)(AMSOFT)(ES)"

See other formats


IP 





GUIfl DEL USURRIO 



m, 



mm 


■'"■■■/ i' ■■'■ if- ' ■ ^ j^ " & '"'"' 


b™ 




* 


1111 MT VTTI 1 1 MM 


■ ; \# 


%**%»*j& 


4B-4 ' ' ' '- 


lis 


: — j 


" '^ 


♦ ... 


f: A ' S ■ D ■ >'-F ' G H 

BE) ' ' ' 


u I a P 


±f*% - 


- ^ .: : ; 








W M .< > J 


- " ^ E L 


' ^JJF= 


■■■' J' ' •■ / ■■" ■ 
re A '«tMMM 


■■-.:■• V ^ 






1/ 


■ r 



Aclaraciones 

sobre la Guia del Usuario 

del CPC464 



La Informatica ha recorrido un camino muy largo en un peri'odo 
muy corto de tiempo. De todos los avances tecnologicos del siglo 
veinte, indudablemente el mas impresionante ha correspondido al 
campo de los ordenadores. 

El desarrollo de estas maquinas y de los programas que las controlan 
ha avanzado mucho mas rapidamente de lo que suponen gran parte 
de los usuarios, por lo que intentar mostrar a quienes poseen un 
CP064 todas las posibilidades v toda la capacidad -su sistema 
operativo BASIC, y de los circuitos que configuran ai-equipo, requerr- 3. 
varios miles de paginas. 

Asi, esta Guia de Usuario es una introduccion cond|sa al CPC46^ 
y a su programacion. Sera complementada por muchos cursos y 
publicaciones didacticas mas especi'ficos y detallados. 

Aquellos usuarios que ya se han familiarizado con otros dialectos 
de BASIC lograran -muy facilmente y en forma rapida- dominar 
la estructura AMSTRAD BASIC; y los que comiencen con esta potente 
maquina, apreciaran la naturaleza directa y sin ambiguedades de 
la terminologia empleada que ha sido^especialmente pensada para 
evitar las peculiaridades muchas veces presentes en interpretaciones 
jcaprichosas del BASIC. De la misma forma, nos hemos preocupado 
de introducir distintos aspectos -fundameptales para este lenguaje 
en el futuro- cuando haya disponibles, computadoras de bajo coste 
que ofrezcan analogas posibilidades a las que el CPC464 posee ya 
y ahora. 

La Guia de Usuario esta dividida en tres secciones 

La primera la llamamos "FUNDAMENTOS PARA PRINCIPIANTES", 
y ha sido escrita principalmente para presentarle los conceptos y 
la terminologia especi'fica -y en constante evolucion de los ordenadores. 
Si previamente no ha tenido un ordenador propio, ni tampoco la 
posibilidad de usar hauitualmente alguno, y si ni siquiera ha podido 
disfrutar produciendo un pequeno y simple programa, entonces le 
aconsejamos que inieie la lectura de esta Guia de Usuario por los 
FUNDAMENTOS que le comentamos en esta primera seccion. 



AMSTRAD CPC464 



Aquellos que posean experiencia previa en este campo, pueden pasar 
directamente al Capi'tulo Primero de la segunda seccion de esta Gui'a 
de Usuario. No solo nos hemos preocupado de reiterar los temas 
esenciales y necesarios para la instalacion y puesta en marcha de 
la maquina; sino que nos hemos concentrado en presentar los rasgos 
especi'ficos del sistema CPC464 de forma clara y comprensible, 
y haciendo mi'nimas hipotesis sobre el grado de experiencia alcanzado 
por el lector. 

Cada uno de los capi'tulos primordiales ha sido escrito para proporcionar 

una rapida vision sobre las muchas facilidades existentes en el CPC464. 

Algunos puntos fundamentales se resaltan y destacan repetidamente, 

para que asi' muchos de los nuevos usuarios logren su deseo de "zambullirse" 

inmediatamente en las distintas facetas de sonidos y graficos, sin 

mas que una muy breve -pero imprescindible- introducciori al teclado 

y a los aspectos mas metodicos del aprendizaje del lenguaje BASIC. 

El Curso de Entrenamiento "Gui'a al BASIC" de AMSTRAD, esta 
planteado para darte completa y exhaustiva ayuda para el aprendizaje 
de todas las facultades de tu CPC464 y de sus ilimitadas posibilidades 
como combinacion de "tutor" en tus estudios, consola para tus juegos, 
y ordenador "puro". Nosotros te aconsejamos firmemente que consigas 
aprender solidamente el uso del CPC464, y para ello invierte en 
un ejemplar de la "Gui'a al BASIC" de AMSTRAD, -por supuesto, 
si es que no lo tienes ya en tu poder. 

Finalmente, la extensa seccion de Apendices, te proveera un amplio 
panorama de conceptSs inf ormaticos, asi' como de aquellos puntos 
de referenda que son especi'ficos de esta potente maquina. 

Nosotros te deseamos el mejor de los exitos -no habrias podido elegir 
un mejor bien para tu dinero; ni por supuesto, un ordenador con 
mejores facultades para desarrollar tu comprension y dominio sobre 
todos los aspectos de la informatica. No existe un camino mejor 
para aprender informatica que practicar sobre un ordenador, y el 
CPC464 en particular -te lo garantizamos- llegara a ser tu 
"mas servicial amigo". 



• 



AMSTRAD CPC*64 



9 
• 



• 



1 
• 



*I 



AMSOFT 

A division of 

Mftmm 



CONSUMER ELECTRONICS PLC 

© Copyright 1984 AMSOFT, AMSTRAD Consumer Electronics pic and Locomotive Software Limited 

Neither the whole or any part of the information contained herein, or the product described in this 
manual may be adapted or reproduced in any material form except with the prior written approval of 
AMSTRAD Consumer Electronics pic ('AMSTRAD'). 

The product described in this manual and products for use with it are subject to continuous development and 
improvement. All information of a technical nature and particulars of the product and its use (including the 
information and particulars in this manual are given by AMSTRAD in good faith. However, it is acknowledged that 
there may be errors or omissions in this manual. A list of details of any amendments or revisions to this manual can be 
obtained by sending a stamped, self addressed envelope to AMSOFT Technical Enquiries. We ask that all users take 
care to submit their reply paid user registration and guarantee cards. 

AMSOFT welcome comments and suggestions relating to the product or this manual. 
All correspondance should be be addressed to: 

AMSOFT 
169 Kings Road 

Brentwood 
Essex GM144EF 

All maintenance and service on the product must be carried out by AMSOFT authorised dealers. Neither 
AMSOFT nor AMSTRAD can accept any liability whatsoever for any loss or damage caused by service or 
maintenance by unauthorised personnel. This guide is intended only to assist the reader in the use of the 
product, and therefore AMSOFT and AMSTRAD shall not be liable for any loss or damage 
whatsoever arising from the use of any information or particulars in, or any error or omission in, this 
guide or any incorrect use of the product. 

Within this manual, the reference Z80 is used with acknowledgement to Zilog Inc. 

First Published 1984 

Published by AMSTRAD 

Typeset by AMSOFT Computer Graphics ' 

AMSTRAD is a registered trademark of AMSTRAD Consumer Electronics pic. Unauthorised use of the trademark or 
word AMSTRAD is strictly forbidden. 



Version castellana 

Traduccion, adaptacion y composicion 
CONORG, S.A. 






IMPORTANTE 



Cuando leas esta Guia de Usuario, deberas tener presente que usamos 
diferentes estilos de letra que indican diferentes formas de hacer 
referencias a los programas; que hay teclas que se encuentran en 
el ordenador pero que no exponen ningun caracter en la pantalla 
al ser pulsadas; y "descripciones generales" asociadas con palabras 
de programacion, pero que no se teclean como parte de la instruccion 
donde aparecen. 



1. 



2. 



4. 



6. 



7. 



Conecta el cable de alimentacion siempre a una clavija de 3 

patillas y dadas en la seccion titulada INSTALAOION. 

Nunca conectes el Teclado, el Monitor o el Alimentador/Modulador 

a ninguna parte de equipo o red electrica diferente a la descrita 

en esta Guia. El no cumplimiento de esta advertencia podria 

producir un severo dano al equipo y -consecuentemente- invalidacion 

de la garantia. 

Manten los ceniceros, bebidas, etc. lo suficientemente alejados 

del teclado de tu ordenador, del Alimentador/Modulador y del 

Monitor. Si penetrase liquido al interior de cualquiera de estas 

unidades, podria provocar danos irreparables. Ante un percance 

de esta naturaleza, consulta a personal adecuadamente cualificado. 

No bloquees ni cubras las ranuras de ventilacion situadas en 

la parte superior y trasera del Teclado, del Monitor y del Alimentador/ 

Modulador. * 

Toda interrupcion en el abastecimiento de energia electrica 

producira la perdida de toda la informacion almacenada en la 

memoria de lectura y escritura del CPC464. Si deseas guardar 

algun programa, consulta el Capftulo 2 despues de haber completado 

la seccion de Fundamentos. 

Se recomienda el uso de cintas magneticas especrficamente 

disenadas para usar con ordenadores. Sin embargo, es perfectamente 

aceptable el empleo de cintas del tipo audio, de buena calidad 

y producidas por fabricas de prestigio, siempre que no sean 

Cr02 o cintas de "metal", y que no tengan uan duracion superior 

a 90 minutos (C-90). 

Para ayudarte a localizar mas facilmente los programas grabados, 

nos permitimos sugerirte que uses cintas C-12 (6 minutos por cara). 

Considera que aquellas cintas que contienen programas de otros 

tipos de ordenador no pueden ser empleadas en el CPC464, salvo 

que hayan sido oficialmente declaradas "compatibles" por nosotros. 



• 

• 
• 

• 
• 

* 

• 

• 

t 

« 

i 



* 



AMSTRAD CPC464 






• 



8. 



10. 



11. 



12. 



13. 



La tecla de Grabacion (Record) no actuara si la lengiieta de 

seguridad (provista para impedir borrados accidentales) ha sido 

cortada. Por favor, no fuerces esta tecla en este caso, pues 

danarias el mecanismo de grabacion. Si deseas volver a grabar 

esas cintas en que se ha quitado la lengiieta de seguridad -situada 

en la parte posterior de la cinta- podras hacerlo cubriendo el 

orificio resultante con cinta adhesiva. 

Recuerda que has de asegurar que la parte inicial de la cinta 

(normalmente de distinto color) se encuentra ya enrollada en 

el carrete receptor antes de comenzar la grabacion de tu programa. 

Procura, con especial atencion, no operar ni conservar ninguna 

de las unidades expuestas a la luz solar directa; en zonas con 

temperaturas excesivamente altas o excesivamente bajas; en 

areas de muchas humedad o mucho polvo, o sujetas a fuertes 

vibraciones, Tampoco, nunca almacenes las cintas en areas con 

intensos campos magneticos, como los existentes en las inmediaciones 

de altavoces y grandes motores electricos. 

El cuidado general de tus cintas y la limpieza regularmente 

de tu equipo de cassettes, te mantendra fuera de problemas 

y de la perdida de programas. 

No existen piezas o partes dentro de la unidad que deban ser 

ajustadas ni engrasadas. No intentes manipular en el interior 

de tu equipo, que posee personal especializado. 

Ni la totalidad, ni ninguna parte de la informatica contenida 

en esta publicacion, ni los programas o productos descritos 

en este manual, podras ser adaptados o reproducidos en forma 

material alguna. 



AMSTRAD CPC464 



^M 



Contenido 



SOBRE ESTA GUIA DE USUARIO 
FUNDAMENTOS PARA PRINCIPANTES 



Una breve introduccion para los que comienzan 

Fl Instalacion 

F2 Familiarizacion con el Teclado 

F3 Graficos, Modos y Sonidos 



1 INICIACION 



Conectando el Ordenador 

Puesta en marcha 

Lo primordial del teclado 

Mostrando el repertorio de caracteres 

Editando y corrigiendo 



2 GRABADORA/REPRODUCTORA DE DATOS EN CINTA 



Cargando y Grabando con el cassette 
La cinta de Bienvenida 



LO PRIMORDIAL DEL BASIC 



Una Introduccion a los Principios del BASIC CPC464 

Sintaxis del BASIC-AMSTRAD 

Variables, Operadores 

Ejercicios Simples en BASIC 

Teclas Definibles por el usuario 

PRINT y Formas de exposicion 



it VARIABLES, OPERADORES Y DATOS 



Formato de la Imagen 
Datos y Tablas 
Dimensionando 
Ubicacion 



CONTENIDO 



5 LO PRIMORDIAL DE LOS GRAFICOS 



Los principios en los Graficos a Color del AMSTRAD CPC464 

INK, PEN, PAPER 

MODES, PIXELS, ORIGINS, WINDOWS 

Simples Rutinas para Graficos 

Caracteres Definibles por el usuario 



6 LO PRIMORDIAL DE LOS SONIDOS 



El Sonido en el CPC464 

Tonos y Envolventes de Volumen 

"Colas" de Sonidos 

Efectos 



7 IMPRESORAS Y 3UEGOS 



Usando los "Joystick" de juegos 

Comando JOY 

Acoplamiento paralelo de una impresora 

8 CONCISA GUIA DE REFERENCIA PARA EL "AMSTRAD-BASIC" 

Un conciso resumen del lenguaje "BASIC" y palabras clave usadas 
para la Programacion del CPC464; Enunciadas en Orden Alfabetico. 

9 INFORMACION ADICIONAL PARA PROGRAMACION 

La organizacion interna de los programas residentes 

Interrupciones y su Significacion 

Caracteres de control 

La relacion entre las subrutinas en Codigo-Maquina y los Comandos 

"BASIC" 

10 FACETAS DE LAS INTERRUPCIONES 

Caracteristicas para "Tiempo Real" 
AFTER, EVERY, REMAIN 



CONTENIDO 






APENDICES 

I Una guia acerca de lo que un principiante puede y no puede 
esperar que su Ordenador haga 
Glosario de Terminos usados en Informatica 

II "Bits" y "Bytes" - Binario y hexadecimal: Una breve leccion. 

III Codigos ASCII y el Repertorio de Caracteres 
Definiciones y reticulos de los caracteres 
Codigos en teclado, y de palabras reservadas 

IV Introduccion y Descripcion General para Usuarios Expertos 

V El "Bus" de Ampliacion 

Conexiones de entrada y salida (INPUT/OUTPUT) 

VI Organizadores y Elaboradores de Textos en Pantalla 

VII Compositor Musical 

Peribdos de Notas y Tonos 

VIII Palabras Reservadas, y Codigos y Mensajes de Error 



CONTENIDO 



AMSTRAD CPC464 



Fundamentos 1: 



INSTALACION 



Instrucciones Iniciales sobre Desembalado, Interconexiones y Puesta 
en marcha del Sistema CPC464. 

El Ordenador Personal a Color CPC464 puede ser instalado eligiendo 
entre: 

1.1 Monitor de Pantalia Verde AMSTRAD GT64 

1.2 Monitor Polfcromo AMSTRAD CTM640 

1.3 Alimentador/Modulador AMSTRAD MP1 y un receptor 
domestico de Television (UHF) 

Por favor, consulta la seccion correspondiente para preparar y conectar 
correctamente el sistema de ordenador, procediendo conforme a 
las instrucciones de operacion. 

1.1 Monitor de Pantalia Verde AMSTRAD GT64 

Extraiga el Monitor de su caja y conecte una clavija de dos patillas 
a los cables de alimentacion, conforme a las instrucciones que siguen. 



. IMPORTANTE — j 

Los hilos conductores de este cable de alimentacion, responden al 
siguiente codigo: 



Azul: Neutro 
Marron: Activo 



Si se usa una clavija de 13 Amps (BS1363) se debe insertar un fusible 
de 5 Amps. El fusible de 13 amperios provisto en estas clavijas 
NO DEBE USARSE. Si se usa cualquier otra clase de clavija, debe 
seguir insertandose un fusible de 5 Amps en el cirtuito de alimentacion, 
sea en la clavija, en el enchufe o en el tablero de distribucion. Como 
los colores de los hilos en el cable de alimentacion de los equipos 
puede que no concuerden con los colores o marcas de las patillas 
de la clavija a emplear, procede de la siguiente forma: 

El hilo de color AZUL se conecta al terminal marcado con "N" o 
de color NEGRO. 

El hilo de color MARRON se conecta al terminal marcado con "L" 
o de color R030. 
Pagina Fl.l 



* 



FUNDAMENTOS 



ADVERTENCIA 



Desconecta el enchufe de red, la clavija del cable de alimentacion 
siempre que no estes usando el monitor. No se requiere hacer ninguna 
conexion en el interior del monitor, por lo tanto no trates de obtener 
acceso a las partes internas del Monitor- 
El ordenador debera ser colocado enfrente del Monitor en una mesa 
apropiada y que se encuentre cercana a algun enchufe de red con 
suministro de corriente. Como se muestra en la Fig. 1, conecta 
el cable con clavija mas grande (6 pines DIN) del Monitor al enchufe 
hembra marcado MONITOR en la parte posterior del ordenador. 
Conecta el cable del Monitor con enchufe mas pequeno (corriente 
continua 5Volt) al enchufe marcado 5V D.C. en la parte posterior 
del ordenador. 



Figura 1 



Monitor 




Conector del MONITOR, 



Asegurate que el boton POWER del Monitor se encuentre en la posicion 
OFF (apagado). Conecta la clavija de red del Monitor al enchufe 
de (240 volts) corriente alterna. 

Ahora enciende el monitor, y posteriormente el ordenador usando 
el interruptor deslizante marcado POWER (energia) en el extremo 
derecho del ordenador. 

El testigo luminoso rojo ON situado en la parte superior central 
del teclado del ordenador debera encenderse, y el Monitor mostrar 
en la pantalla el siguiente mensaje: 



Ansira<l 64K Microcomputer (vl) 

•1984 Am s trad Consuntr Electronics pic 
and Locomotive Software Ltd. 



Cursor 



BASIC 
eady 



1.8 



Pagina F1.2 



FUNDAMENTOS 



Para evitar esfuerzos innecesarios de vision, ajusta el mando del 
brillo BRIGHTNESS hasta que la pantalla muestre una imagen con 
brillo idoneo para la vista, sin resplandecer ni presentar las letras 
borrosas o sin nitidez. 

Tambien deberas ajustar el mando de contraste CONTRAST a la 
minima posicion que le permita una vision comoda. 

El control de sincronismo vertical del GT64 esta marcado como 
V-HOLD, y deberas ajustarlo de manera que el cuadro de la imagen 
se mantenga estable y correctamente en el medio de la pantalla. 



1.2 El Monitor a Color AMSTRAD CTM640 

Saca el monitor de su caja y conecta su cable de alimentacion electrica 
a una clavija industrial, conforme a las instrucciones que se posea. 



IMPORTANTE 



Los hilos conductores de este cable de alimentacion, responden al 
siguiente codigo: 



Azul: Neutro 
Marron: Activo 



Si se usa una clavija de 13 Amps (BS1363) se debe insertar un fusible 
de 5 Amps. El fusible de 13 amperios provisto en estas clavijas 
NO DEBE US ARSE. Si se usa cualquier otra clase de clavija, debe 
seguir insertandose un fusible de 5 Amps en el cirtuito de alimentacion, 
sea en la clavija, en el enchufe o en el tablero de distribucion. Como 
los colores de los hilos en el cable de alimentacion de los equipos 
puede que no concuerden con los colores o marcas de las patillas 
de la clavija a emplear, procede de la siguiente forma: 

El hilo de color AZUL se conecta al terminal marcado con "N" o 
de color NEGRO. 

El hilo de color MARRON se conecta al terminal marcado con "L" 
o de color R030. 

I 



Pagina F1.3 



* 



FUNDAMENTOS 



ADVERTENCIA 



Desconecte el enchufe de la red cuando el Monitor se encuentre 
f uera de uso. No se requieren conexiones en la parte interna del 
Monitor, por lo tanto no intente tener acceso a las partes internas 
de su equipo. 

El ordenador debera ser colocado enfrente del Monitor en una mesa 
apropiada y que se encuentre cercana a algun enchufe de red con 
suministro de corriente. Como se muestra en la Fig. 1, conecta 
el cable con la clavija mas grande (6 pines DIN) del Monitor al enchufe 
hembra marcado MONITOR en la parte posterior del ordenador. 
Conecta el cable del Monitor con enchufe mas pequeno (corriente 
continua 5Volt) al enchufe marcado 5V D.C. en la parte posterior 
del ordenador. 

Asegurate que el boton POWER del Monitor se encuentre en la posicion 
OFF (apagado). Conecta la clavija de red del Monitor al enchufe 
de (240 volts) corriente alterna. 

Ahora enciende el monitor, y posteriormente el ordenador usando 
el interruptor deslizante marcado POWER (energi'a) en el extremo 
derecho del ordenador. 

El testigo luminoso rojo ON situado en la parte superior central 
del teclado del ordenador debera encenderse, y el Monitor mostrar 
en la pantalla el siguiente mensaje: 

Anstrad 64K Microcomputer (vl) 

€>1984 Anstrad Consumer Electronics pic 
and Locomotive Software Ltd. 



r 

cursor 



BASIC i.e 
Ready 



Para evitar esfuerzos innecesarios de la vision, ajusta el mando 
de brillo situado en un lateral del monitor y marcado BRIGHTNESS 
hasta que la pantalla muestre una imagen con luminosidad idonea 
y sin resplandor ni letras borrosas o faltas de nitidez. 



Pagina F1.4 



r- FUNDAMENTOS 



1.3 Modulador/Alimentador AMSTRAD MP1 y un receptor de television 
a color (UHF) domestico 

El MP1 es un accesorio conveniente y que desearas comprar, si 
habitualmente operas tu ordenador CPC464 con el Monitor de Pantalla 
Verde GT64. El MP1 te permitira usar el ordenador con un Televisor 
a Color Domestico, y por tanto gozar con todas las facilidades de 
color que te ofrece tu ordenador CPC464. 

Extrae de su caja el Modulador/Alimentador MP1 y conecta una 
clavija de corriente de alimentacion al cable del Modulador/Alimentador 
conforme a las instrucciones siguientes: 



IMPORTANTE 



Los hilos conductores de este cable de alimentacion, responden al 
siguiente codigo: 



Azul: Neutro 
Marron: Activo 



Si se usa una clavija de 13 Amps (BS1363) se debe insertar un fusible 
de 5 Amps. El fusible de 13 amperios provisto en estas clavijas 
NO DEBE USARSE. Si se usa cualquier otra clase de clavija, debe 
seguir insertandose un fusible de 5 Amps en el cirtuito de alimentacion, 
sea en la clavija, en el enchufe o en el tablero de distribucion. Como 
los colores de los hilos en el cable de alimentacion de los equipos 
puede que no concuerden con los colores o marcas de las patillas 
de la clavija a emplear, procede de la siguiente forma: 

El hilo de color AZUL se conecta al terminal marcado con "N" o 
de color NEGRO. 

El hilo de color MARRON se conecta al terminal marcado con "L" 
o de color ROJO. 



J 



ADVERTENCIA 



Desconecte el enchufe de la red principal cuando esta unidad se 
encuentre fuera de uso. 

No se requieren conexiones internas de ningun tipo, por lo tanto 
no intente tener acceso al interior de esta unidad de su equipo. 



Pagina F1.5 — ' 



FUNDAMENTOS 



Conector 5V DC 




TV Domestico 




Conector de antena 
3) Conector del MONITOR 



Figura 2: El MP1 Modulador y Alimentador 



EI Modulador/Alimentador MP1 debera ser colocado a la derecha 
del ordenador en una mesa apropiada, que se encuentre cerca del 
Televisor y a un enchufe del suministro electrico. Como se muestra 
en la figura 2, conecta al cable del MP1 la clavija mas grande (6 
pines DIN) al enchufe marcado MONITOR en la parte posterior del 
ordenador. Conecta el cable del MP1 con la clavija mas pequena 
(corriente continua 5 voltios) al enchufe marcado 5V DC, de la parte 
posterior del ordenador. Inserta el conector del cable de antena 
del MP1 al conector de entrada de antena del Televisor. 

Comprueba que el interruptor POWER del ordenador y situado en 
el costado derecho, se encuentre en la posicion OFF (apagado); ahora 
conecta la clavija de alimentacion MP1 al enchufe de energia electrica 
(240 volts corriente alterna). 

Ahora reduce el control de volumen del Televisor al mi'nimo; enciende 
el Televisor y luego el ordenador usando el interruptor deslizante 
situado en el costado derecho del ordenador. 

El testigo luminoso rojo situado en la parte superior central del 
teclado del ordenador debera encenderse, y ya puedes sintonizar 
el televisor hasta recibir la serial de UHF emitida por el ordenador. 

Si empleas un televisor con seleccion de canales mediante pulsadores, 
presiona el correspondiente a algun canal de reserva o que no usas 
habitualmente. Ajusta el control de sintonia conforme a las instrucciones 
de fabrica para ese televisor (la senal corresponde aproximadamente 
al canal 36). Debes lograr una imagen con el saludo de bienvenida: 



L 



Pagina F1.6 



FUNDAMENTOS 



Anstrad 64K Microcomputer (vl) 

©1984 Anstrad Consumer Electronics pic 
and Locomotive Software Ltd. 



BASIC 
Ready 



1.0 



r 

CURSOR 

Sintoniza el televisor exactamente hasta el punto en que obtengas 
la imagen mas nitida. Las letras deberas ser de color amarillo-oro 
sobre un fondo azul intenso. 

Si el televisor posee un selector de canales del tipo rotativo, gira 
la perilla de sintonia hasta obtener la imagen indicada mas arriba 
y hasta que esta permanezca perfectamente estable. (Otra vez, 
aproximadamente el canal 36). 



ADVERTENCIA GENERAL 



Para aquellos paises que usen enchufes y clavijas de suministro electrico 
con tres tomas y terminales, los cables de alimentacion del Monitor, 
Ordenador y Alimentador/Modulador estan dotados de un tercer 
hilo conductor con cubierta de color verde para ser conectado a 
la tercera patilla de la clavija que debe corresponder a la ytierra" 
de la red de energia electrica. En ningun caso se conectara este 
cable a ninguno de los dos terminales cuando se empleen clavijas 
de dos terminales. 



1.* JOYSTICK 

El joystick AMSOFT modelo JY1 constituye un artilugio que desearas 

tener si usas el ordenador CPC464 con programas de juegos que 

incorporen la facilidad de control de movimientos y disparos dentro 

del juego. El 3Y1 puede ser conectado a la parte posterior del ordenador 

usando el conector hembra de 9 vias marcado USER PORTS (I/O). 

El ordenador AMSTRAD CPC464 puede operar simultaneamente 

con dos joystick de ese estilo. El segundo de ellos debera ser conectado 

al conector hembra, provisto en la peana del primer joystick. 



Pagina F1.7 



FUNDAMENTOS 



CLAVIJA DE JOYSTICK (9 vfas) 







JOYSTICK 

JY1 
AMSOFT 






SEGUNDO CONECTOR 
JY1 Joystick de control 

■1.5 Cinta de Bienvenida 



Envuelta en un sobre de polietileno en la caja de tu ordenador, habras 
encontrado una cassette conteniendo la "Cinta de Bienvenida". Levanta 
la cubierta de la ductora de cintas en cassette presionando la tecla 
marcada STOP/EJECT para parar e insertar la cassette con la cinta 
de bienvenida en los carriles de soporte, tal y como se muestra 
en la figura 3, -asegurandote de que presentas la cara 1, marcada 
hacia arriba. 




L 



Figura 3: La forma correcta de insertar un cassette dentro de la 
ductora de cinta magnetica. 

Cierra la cubierta hasta que suene el pestillo que indica un encaje 
correcto, presiona la tecla de rebobinado, marcada REW hasta que 
te cerciores que la cinta esta debidamente colocada en su principio. 
Tan pronto como la cinta se detenga, oprimes la tecla STOP/EJECT 
y repones el valor inicial en el contador de revoluciones (contadora 
000) presionando el boton de restauracion del contador, marcado 
COUNTER RESET. 

Pulsa la tecla verde de control del teclado, marcada CTRL y AL 
MISM© TIEMPO la pequena tecla azul, marcada ENTER en la parte 
inferior derecha del teclado numerico separado y situado inmediatamente 
al lado de la unidad ductora de cinta. 



Pagina F1.8 



FUNDAMENTOS 



La pantalla respondera con el mensaje: 

RUN" 

Press PLAY then any key: 

Ahora oprimes la tecla de reproduccion, marcada PLAY y situada 
en la parte delantera de la ductora de cinta, hasta que se quede 
firmemente trabada en su posicion inferior; luego pulsas cualquier 
letra, numero, o cualquiera de las dos teclas ENTER, o incluso y 
mas comodo, la barra espaciadora. La cinta comenzara a correr, 
y despues de un corto perfodo, aparecera en la pantalla el mensaje: 

Loading WELCOME 1 block 1 

La cinta tardara cerca de 5 minutos en ser cargada y podras observar 
que todo marcha correctamente a traves de la pantalla, pues el 
numero de "bloque" cambiara de 1 a 2, a 3, etc. hasta que la cinta 
se detenga. En este momento, el programa Welcome ya cargado 
en la memoria del ordenador, comenzara a ser ejecutado por la 
maquina. Simplemente acomodate en un sillon y observa. El programa 
"rula" continuamente, asi' que cuando hayas terminado de observarlo, 
presiona la tecla de escape, marcada ESC dos veces seguidas. Eso 
hace que se detenga el programa, y ya puedes ahora sacar la cinta, 
darla la vuelta y ponerla por la cara 2. 

Despues de cambiar la cinta a la cara 2, una vez mas, recuerda 
presionar la tecla REW en la ductora de cinta, para asegurarte de 
que la cinta esta colocada al principio del recorrido. 

Pulsa la tecla CTRL y AL MISMO TIEMPO, la pequena tecla ENTER 

en la parte inferior derecha del teclado numerico. La pantalla respondera 

como antes, con el mensaje: 

RUN" 

Press PLAY then any key: 

para indicar que esta lista para cargar el programa grabado en esa 
cara de la cinta. 

Ahora oprime la tecla PLAY hasta que se enganche abajo, y luego 
pulsas cualquiera de las teclas. Todo es igual que antes. La cinta 
comenzara a correr y despues de un corto perioro veras el mensaje 

Loading WELCOME 2 block 1 

que te indica que esta "cargando" el programa de bienvenida, (el 
bloque 1 de esa cara). 

Sigue las instrucciones dadas en pantalla, y el programa te invitara 
a que participes escribiendo diversas instrucciones, mas complejas 
a medida que va progresando el programa y tu. 
— Pagina F1.9 - 



FUNDAMENTOS 



1.6 CARGANDO OTRAS CASSETTES DE PROGRAMAS 



LA CINTA DE BIENVENIDA SOLO PUEDE SER CARGADA Y SUS 
PROGRAMAS "EJECUTADOS" en la forma descrita en la seccion previa 
(1.5). Los programas en BASIC -sin protecciones especiales- podran 
ser cargados con los siguientes metodos alternatives. Rebobina la 
cinta que has insertado en la unidad ductora de cinta, presionando 
la tecla REW hasta que la cinta se detenga; que sera el momento 
en que deberas oprimir la tecla STOP/EJECT. 

Restaura las condiciones iniciales en el sistema (los angloparlantes 
llaman RESET a esta operacion), pulsando sucesivamente las siguientes 
teclas: CTRL, SHIFT y ESC - pero manteniendo presionadas las 
dos primeras hasta que pulses la tecla ESC. La pantalla se limpiara 
y en pantalla reaparecera el mismo mensaje de salutacion que aparece 
nada mas poner en marcha el ordenador. 

La palabra ENTER en las siguientes instrucciones, indica que debes 
pulsar cualquiera de las dos teclas ENTER - no significa que debas 
escribir, letra por letra la palabra ENTER. El simbolo " se obtiene 
tambien oprimiendo cualquier tecla SHIFT simultaneamente con 
la tecla 2 de la fila superior del teclado. 

Escribe: 

Load '*" ENTER 

El ordenador te pide: 

Press PLAY then any key: 

Ahora presionas la tecla PLAY en la fila de teclas de la parte delantera 
del "almacenador" de datos hasta que se enganche firmemente y 
luego cualquiera de las del teclado, incluso la barra espaciadora. 

La cinta comenzara a pasar y despues de un corto periodo, veras 
aparecer en la pantalla este mensaje. 

Loading <nornbre del programa> block 1 

Los numeros de bloque continuaran aumentando hasta que la cinta 
haya terminado de cargarse, momento en que aparecera: 

Ready 

...como mensaje escrito en la pantalla, para indicarte que esta dispuesta 
a recibir tus ordenes. 



Pagina F1.10 



FUNDAMENTOS 



Alternativamente, puedes especificar el nombre del programa que 
desees cargar. Para hacerlo, escribes por teclado 

Load " titulo " ENTER 

El ordenador te pedira: 

Press PLAY then any key: 

Ahora presionas la tecla PLAY para que la ductora de cinta comience 
a trasvasar a la memoria el programa grabado en la cinta, y luego 
pulsas alguna tecla con cualquier letra, numero, cualquier tecla 
ENTER, o incluso la barra espaciadora. 

La cinta comenzara a moverse. Si el programa que has pedido al 
ordenador que cargue no se encuentra al comienzo de la cinta, el 
ordenador lo buscara a lo largo de toda ella hasta encontrar uno 
cuyo titulo sea exactamente igual al que le has escrito en ese comando. 
Por tanto, deberas ser muy cuidadoso al escribir el titulo del programa 
en forma correcta. Si mientras el ordenador busca ese titulo a lo 
largo de la cinta se encuentra con otros programas con titulo distinto 
al que le has mandado cargar, te mostrara el siguiente mensaje 
en pantalla: 

Found <otro tltulo> block 1 

que indica que ha encontrado un programa con ese titulo distinto. 

El ordenador no cargara ninguno de esos programas, pero persistira 
en la busqueda del que le has mandado, a lo largo de toda la cinta' 
hasta que encuentre el que posee un titulo exacto al que has escrito, 
o hasta que pulses la tecla ESC que le obliga a terminar la busqueda 
en cinta. 

Cuando ya ha encontrado el programa, veras aparecer en la pantalla 
el mensaje: 

Loading <titulo> block 1 

Para comunicarte que ha comenzado la operacion de carga del programa. 

Los numeros de bloque continuaran aumentando sucesivamente hasta 
que la cinta haya terminado la carga del programa, momento en 
el que mostrara en pantalla el mensaje: 

Ready 

para indicar que esta dispuesta a cumplimentar otro comando. 



Pagina Fl.ll 



FUNDAMENTOS 



En ese momento, puedes escribirle: 

run ENTER 

...y el programs que acaba de cargarse, comenzara a ser ejecutado. 
Si ya existia en memoria un programa, sera automaticamente borrado 
cuando se produzca la carga de otro procedente de la cinta. 

Para que el programa sea ejecutado directamente, inmediatamente 
despues de que haya sido cargado por el ordenador, puedes teclear: 

RUN "titulo" ENTER 

para obligarle no solo a que lo cargue, sino a que lo ejecute 
inmediatamente despues. El ordenador te respondera con: 

Press PLAY then any key: 

que es un mensaje ya conocido que te solicita que presiones la tecla 
PLAY del equipo cassette y luego cualquiera de las letras, numeros, 
del teclado, o bien cualquiera de las teclas ENTER, o incluso la 
barra espaciadora. El ordenador comenzara a buscar el programa 
que le has pedido, y cuando lo encuentre lo trasvasara de la cinta 
a la memoria y lo ejecutara sin que tengas que anadir ningun otro 
comando por el teclado. Podras detener la operacion en cualquier 
momento, pulsando la tecla ESC, como ya conoces. 



1.7 Cargando programas previamente grabados en cinta 

Las instrucciones dadas hasta ahora te permitiran cargar cualquiera 
de los muchos titulos de programa disponibles para el ordenador 
CPC464. 

Sin embargo, consulta siempre por favor, las instrucciones especi'ficas 
de carga que vienen impresas en cada uno de los cassettes de programas. 



1.8 Guardando programas en cinta 

Todo porgrama puede ser guardado en cinta, mediante el comando 
BASIC SAVE, para ser usado posteriormente. Inserta una cinta en el 
equipo cassette, en la forma que te hemos indicado, y cierra la 
cubierta. (La lengiieta de proteccion que impide la grabacion de 
las cintas, y que esta situada en la parte posterior del propio cassette 
que contiene la cinta, no debe haber sido quitada). 

* — Pagina F1.12 



FUNDAMENTOS 



Oprime la tecla REW para rebobinar la cinta y colocarla al principio, 
recordando pulsar la tecla STOP/EJECT cuando se detenga la cinta. 
Luego tecleas simplemente: 

save "<titulo del programa> " ENTER 

que es el comando necesario para que el ordenador trasvase a la 
cinta el programa que tiene en memoria, y quede en la cinta con 
el titulo que has resefiado en la instruccion. 

El ordenador te respondera con el mensaje: 

Press REC and PLAY then any key: 

Para indicarte que en este caso han de pulsarse las teclas de grabacion 
y de marcha al mismo tiempo, y de manera que ambas se queden 
enganchadas firmemente en su posicion mas baja; y que luego pulses 
cualquiera de las letras, numeros, teclas ENTER, o incluso barra 
espaciadora para que comience la operacion. 

Despues de haberlo hecho, el ordenador te mostrara en pantalla 
el mensaje: 

Saving <tltulo del programa> block 1 

para indicar que ha comenzado la operacion de guardar en la cinta 
el programa que tenia en memoria y con el titulo que le has dado. 

Cuando haya terminado de grabar el programa, la cinta se detendra 
y veras aparecer en pantalla la palabra: Ready. En ese momento 
puedes pulsar la tecla STOP/EJECT de tu equipo cassette, porque 
tu programa ya se encuentra depositado en la cinta. 

Ten en cuenta que no podras almacenar programas en cinta que 
hayan sido previamente grabados por las empresas distribuidoras 
con programas de juegos o de cualquier tipo, cargandolos previamente 
en tu ordenador y aunque las cintas que vayas a usar esten en bianco. 

Todos esos programas se encuentran protegidos para impedir que 
se saquen copias sin autorizacion. 



Pagina F1.13 



* 



AMSTRAD CPC464 



Fundament os 2: 



FAMILIARIZACION 
CON EL TECLADO 



Explicaremos ahora las funciones de algunas de las teclas del ordenador. 
Aquellos que posean experiencia previa con equipos de proceso de datos 
pueden saltarse esta seccion. 



ENTER 

Existen dos teclas marcadas ENTER en tu ordenador. Cada una 
de estas teclas "envian adentro" la informacion que has tecleado, 
indicando al ordenador que ya has terminado de darle la instruccion 
y que puede pasar a tramitarla. Despues de pulsar la tecla ENTER, 
el cursor se coloca al principio de la siguiente linea de la pantalla. 
Todas y cada una de las instrucciones y comandos que le des al 
ordenador, deben ser terminadas pulsando la tecla ENTER, para 
que irigrese ese comando o instruccion y pueda ser cumplimentada. 
De ahora en adelante, solo mostraremos la pulsacion de esa tecla 
ENTER para destacar que debe ser pulsada despues de cada instruccion 
o linea de programa. 

DEL 

Esta tecla se usa para borrar o "delectar" el caracter situado 
inmediatamente; a la izquierda del cursor; es decir, para suprimir 
una letra, numero, o si'mbolo que sea innecesario. Escribe por ejemplo 
abed y veras que la ultima letra tecleada, la d esta situada 
inmediatamente a la izquierda del cursor. Si decidieras que esa 
letra d ya no era necesaria, te bastaria pulsar la tecla DEL una 
sola vez para comprobar que el cursor retrocede a la izquierda, 
suprimiendo de la pantalla dicha letra. Si mantienes pulsada la tecla 
DEL el tiempo suficiente, tambien irian sucesivamente borrandose 
de la pantalla con retroceso del cursor en cada caso, las letras cba 
por ese orden. 

SHIFT 

Existen dos teclas de turno o cambio, marcadas con la palabra SHIFT. 

Pulsando cualquiera de ellas y manteniendola pulsada mientras que 

al mismo tiempo se oprime una tecla correspondiente a una letra, 

lo que aparece en la pantalla es esa letra pero en mayusculas. Escribe 

por ejemplo la letra a y luego vuelve a pulsar la tecla a simultaneamente 

con la pulsacion de la tecla SHIFT. Veras que en pantalla aparece 

lo siguiente: 

aA 



Pagina F2.1 



FUNDAMENTOS 



Escribe ahora unos pocos espacios en bianco, manteniendo pulsada 

la barra espaciadora. Ensaya ahora lo mismo usando las teclas marcadas 

con numeros que estan situadas en la fila superior del teclado; escribe 

por ejemplo el numero 2 simplemente pulsando la tecla marcada 

con 2, y luego pulsa esa misma tecla pero simultaneamente mantienes 

pulsada la tecla SHIFT. Comprobaras que ahora aparece en pantalla 

el simbolo de las comillas, que esta situado por encima del 2 dentro 

de la misma tecla. Por tanto en pantalla tendras: 

2" 

Puedes ahora comprobar lo que pasa cuando se mantiene pulsada 

la tecla SHIFT si se pulsa cualquier otra tecla marcada con un caracter. 

Haz experimentos, tecleando cualquiera de esas teclas de caracteres 

y pulsando unas veces simultaneamente la tecla SHIFT y otras veces 

sin pulsarla. Cuando se pulsa, comprobaras que es el "turno" de 

las mayusculas o de los caracteres situados en la parte superior 

de cada tecla. 

CAPS LOCK 

Pulsando esta tecla una sola vez, se logra que las teclas correspondientes 
a las letras que hay en el teclado pasen a enviar siempre al ordenador 
el simbolo correspondiente a las mayusculas. Decimos que el teclado 
esta "trabado" o enclavado en mayusculas. A partir del momento 
en que ha pulsado la tecla CAPS LOCK, ten en cuenta que todas 
las letras seran mayusculas, pero para conseguir con las otras teclas 
el signo que figura en la parte superior, tendras que seguir pulsando 
simultaneamente la tecla SHIFT. 

Veamos un ejemplo. Pulsa la tecla CAPS LOCK y luego sucesivamente 
las marcadas con los simbolos: 

abcdefl23456 

Observaras que en pantalla lo que aparece es: 

ABCDEF123456 

que indica que todas las teclas de letras envian a la pantalla y al 
ordenador esas mismas letras pero en mayuscula; mientras que las 
teclas con numeros no envian los simbolos marcados en la parte 
superior de la tecla. 

Pero si ahora vuelves a pulsar sucesivamente las teclas: 

abcdefl23456 

pero manteniendo pulsada simultaneamente y cada vez la tecla SHIFT, 
lo que obtienes en pantalla es: 

ABCDEF!"#$?o& 

tal y como te hemos comentado. 



Pagina F2.2 



FUNDAMENTOS 



Si quisieras volver al modo anterior con las letras en minuscula, 
solo tienes que pulsar otra vez la tecla CAPS LOCK. Esta tecia 
actua como un "basculador", cambiando de modo cada vez que se 
pulsa. 

Si deseas teclear letras en mayuscula y los si'mbolos situados en 
la parte superior de las otras teclas, sin tener que mantener 
constantemente pulsada la tecla SHIFT, tambien lo puedes lograr 
pulsando simultaneamente la tecla CTRL y la tecla CAPS LOCK. 
Despues de ello, si pulsas sucesivamente las teclas marcadas: 

abcdefl23456 

obtendrias en pantalla: 
ABCDEF!"#$?o& 

Y sigue siendo posible teclear numeros en esta situacion, incitada 
por la pulsacion simultanea de CTRL y CAPS LOCK, si empleas 
las teclas numericas colocadas en el teclado que hay a la derecha, 
separado del teclado principal. 

Manteniendo pulsada la tecla CTRL y volviendo a pulsar simultaneamente 

la tecla CAPS LOCK, volveras de nuevo al modo en que estabas 

previamente: sea con las mayusculas trabadas, o en minusculas. 

Por supuesto, que si has vuelto al modo de mayusculas trabadas, 

el efecto basculador de la tecla CAPS LOCK hara que a la siguiente 

pulsacion de esa tecla, vuelvas al modo minusculas. 

CLR 

Esta tecla se usa para borrar ("influido por el ingles, diriamos CLAREAR") 
para borrar el caracter situado en la misma posicion que el cursor. 

Teclea por ejemplo ABCDEFGH. El cursor terminara situado 
inmediatamente a la derecha de la ultima letra escrita, la H. Ahora 
pulsa la tecla de desplazamiento a izquierda del cursor (■«-), y hazlo 
cuatro veces seguidas. El cursor se movera cuatro posiciones hacia 
la izquierda, colocandose encima mismo de la letra E. 

Observa que la letra E todavia es visible dentro del cursor. Si ahora 
pulsas la tecla CLR una sola vez, notaras que desaparece la letra 
E y que las letras FGH se desplazan un espacio hacia la izquierda, 
con lo que ahora es la letra F la que aparece dentro del cursor. 
Si pulsas ahora una segunda vez la tecla CLR desaparecera esa 
letra F y manteniendola pulsada, veras como se van borrando 
sucesivamente las letras y desplazandose hacia la izquierda. 



Pagina F2.3 



FUNDAMENTOS 



ESC 



Esta tecla se usa para ESCAPAR de la funcion que el ordenador 
este desarrollando en ese momento. Pulsando una sola vez la tecla 
ESC, solo se consigue que el ordenador realice una pausa en el desarrollo 
de la funcion vigente, y que la continue tan pronto como sea pulsada 
cualquier otra tecla distinta de ESC. 

Si en esa situacion pulsas ESC, habran sido dos pulsaciones sucesivas 
de la tecla ESC, lo que tiene como efecto que el ordenador termine 
y deje definitivamente la funcion que estaba desarrollando en ese 
momento. El ordenador pasara entonces al modo normal en que 
espera que le dictes algun otro comando o instruccion. 

Pulsa ahora por dos veces consecutivas la tecla ESC. 

IMPORTANTE 

Cuando llegues al borde derecho de la imagen, porque hayas tecleado 
mas de 40 caracteres consecutivos, el siguiente caracter que teclees 
aparecera automaticamente en la siguiente li'nea de la pantalla y 
situado en el extremo izquierdo de esa li'nea. Eso significa que NO 
DEBES pulsar ENTER cuando estes cerca del final de una linea, 
tal y como se acostumbra a hacer en las maquinas de escribir, sino 
que debes continuar tecleando, que automaticamente el ordenador 
pasara a la li'nea siguiente cuando lo necesite. 

Si no lo hicieras, y pulsaras intempestivamente la tecla ENTER, 
el ordenador mostrana su desacuerdo -habitualmente mediante el 
mensaje: Syntax error, ya sea en el momento en que tecleas 
o posteriormente cuando oases ese programa. 

Syntax Error 

Si aparece en pantalla el mensaje: Syntax error, es senal que 
el ordenador no entiende el comando o instruccion que le acabas 
de teclear. Por ejemplo, si escribes: 

printt ENTER 

Aparecera en pantalla el citado mensaje de error sintactico. 

syntax error 

Ese mensaje aparece porque el ordenador no comprende la palabra 
"printt" (debido a la doble t). 

Si cometes una equivocacion en una li'nea de un programa, de la 
misma clase que antes, como por ejemplo: 

10 printt "abc" ENTER 

no aparecera el mensaje de error sintactico hasta que esa instruccion 
vaya a ser cumplimentada por el ordenador en el momento de ejecutar 
el programa. 

Pagina F2.4 



FUNDAMENTOS 



Lo puedes comprobar, tecleando ahora: 
run ENTER 

Veras que en pantalla aparece el mensaje: 

Syntax error in 10 
Qo printt "abc" 

que te indica un error sintactico como antes, pero sefialandote ademas 
el numero de lfnea en que ha detectado el error, y mostrando en 
pantalla toda esa linea del programa, juntamente con el cursor de 
"edition" situado sobre el primer caracter de esa linea, para indicarte 
que espera la correction. 

Pulsa en esta situation la tecla de avance del cursor a derecha, marcado 
(■*) hasta que el cursor se situe encima de una de las t de dicha palabra 
printt. Basta pulsar la tecla CLR para que desaparezca esa t que 
sobra. Ahora no olvides que hasta que pulses la tecla ENTER, el ordenador 
no se da por enterado que has corregido esa linea. 

Despues de hacerlo, ya puedes repetir el comando run ENTER para 
comprobar que ya el ordenador acepta esa instruction, la interpreta 
y cumplimenta, y por tanto, expone en pantalla las letras abc. 



Una introduccidn a las palabras 
clave del BASIC AMSTRAD 

En el capftulo 8, encontraras una description ordenada de todas las 
palabras claves aceptadas en el lenguaje "BASIC AMSTRAD". En esta 
section te presentamos algunas de esas palabras clave que se usan 
mas frecuentemente. 

CLS 

Teclea esa palabra els y veras como se LIMPIA la pantalla. La 
palabra CLS la puedes escribir como todas las demas palabras reservadas 
usando letras mayusculas o minusculas, y siempre pulsando para terminar 
todo comando la tecla ENTER. Notaras que despues de quedarse la 
pantalla en limpio, aparece la palabra habitual Ready, con el cursor ■ 
situado en la esquina superior izquierda de la pantalla, indicandote 
que esta dispuesto a recibir nuevas ordenes. 



Pagina F2.5 



FUNDAMENTOS 



PRINT 

Esta palabra clave se usa habitualmente para hacer que el ordenador 
EXPONGA en pantalla lo que tu deseas, sean palabras, datos o figuras. 
Teclea por ejemplo, el siguiente comando: 

print "ho la" ENTER 

Y veras que en la pantalla aparece la palabra: 
hola 

porque el ordenador ha entendido que debia emitir hacia la pantalla 
lo que estaba incluido entre comillas. 

Las comillas (") se usan para indicar al ordenador que lo que debe 
considerar como dato, y en este caso exponerlo en pantalla, es lo 
que esta incluido dentro de las comillas. En este caso fue la palabra 
hola, y cumplimento ese comando tan pronto como pulsaste la tecla 
ENTER. Escribe ahora pis ENTER para dejar limpia la pantalla. 

RUN 

El ejemplo previo nos ha mostrado como cumplimenta el ordenador 

un comando de forma inmediata. Para que no ejecute inmediatamente 

lo mandado, debemos preceder nuestro mandato de un numero de 

linea cualquiera. En ese caso, el ordenador no cumplimenta inmediatamente 

lo mandado, sino que lo considera como una INSTRUCCION que debe, 

de momento, almacenar en su memoria y que mas tarde le diremos 

que hacer con ella. Ese numero caracteriza a cada instruccion y le 

sirve ademas al ordenador para colocarlas en su memoria segun el 

orden ascendente de esos numeros. Un programa es simplemente una 

serie de instrucciones almacenada en la memoria del ordenador, y 

no se ejecuta hasta que le mandamos que lo ejecute, usando el comando 

RUN. 

Escribe por ejemplo la instruccion: 

10 print "hola" ENTER 

y pulsas para terminarla la tecla ENTER. 

Observa que cuando pulsaste ENTER, el ordenador no escribio en 
pantalla la palabra hola, porque lo que tecleaste lo interpreto como 
una instruccion y lo tiene simplemente almacenado en su memoria. 
Es un programa de una sola linea. Si ahora le das, es decir, le tecleas 
el comando: 

run ENTER 

veras como aparece en pantalla la palabra hola, como resultado 
de haber ejecutado ese programa. 



Pagina F2.6 



'V 

m 
m 



m 
# 



+ 
* 



* 

m 



# 

• 



FUNDAMENTOS 



Te queremos hacer notar que la palabra PRINT se usa continuamente 
en los programas, por lo que puedes abreviarla pulsando simplemente 
la tecla de interrogacion, situada en la parte superior de la tecla 
marcada con el si'mbolo / . 

Por ejemplo, puedes escribir abreviadamente: 
10 ? "ho la" ENTER 



LIST 

Despues de que el programa haya sido almacenado en la memoria 
del ordenador, es posible comprobar toda la serie de instrucciones 
que lo forman, sacando un LISTADO del programa. Escribe por ejemplo: 

list ENTER 

y en la pantalla veras la unica linea de nuestro programa: 
10 PRINT "hola" 

Observa que la palabra PRINT esta ahora en mayusculas, a pesar de 
haberla escrito en minusculas. Eso significa que el ordenador no solamente 
ha aceptado esa palabra como una palabra clave en BASIC, sino que 
la ha transformado y la ha escrito en mayusculas. 

Da el comando CLS para limpiar la pantalla, y ten en cuenta que solo 
es la pantalla la que se ha quedado en limpio mediante el comando 
CLS; el programa continua estando en memoria, y lo puedes comprobar 
volviendo a pedir al ordenador que lo liste. 

GOTO 

La palabra clave GOTO le dice al ordenador que VAYA desde la linea 
que se encuentra hasta la linea cuyo numero se resefia en esa instruccion. 
Se usa (cada vez menos) para dar un salto progresivo o regresivo en 
el numero de instruccion que se ejecutara a continuacion. 

Si por ejemplo tecleas: 

10 print "hola" ENTER 
20 goto 10 ENTER 

y luego le pides que ejecute ese programa, mediante el comando: 

run ENTER 

veras que el ordenador escribe continua y sucesivamente en la pantalla 
la palabra hola, colocandolas una detras de otra y en el extremo 
izquierdo de la imagen. Para detener este programa, puedes hacerlo 
como ya te hemos mencionado, pulsando la tecla ESC una sola vez. 
Para que vuelva a comenzar de nuevo, te basta pulsar cualquier tecla 
distinta de ESC. Para pararlo nuevamente de forma definitiva, y poder 
escribir otras instrucciones nuevas, pulsa dos veces la tecla ESC. 

Pagina F2.7 — 



FUNDAMENTOS 



■mm 
# 



Teclea ahora: 
els ENTER 

para dejar la pantalla en limpio. 

Para verla palabra ho la escrita continuamente en cada lihea, una 
vez detras de otra y rellenando por tanto la totalidad de la pantalla, 
puedes modificar el programa anterior y usar el signo punto y coma 
(;) despues de las comillas de cierre. Es decir, debes escribir: 



10 print "hola"; 
20 goto 10 ENTER 
run ENTER 



ENTER 



• 



• 




Observa que el signo punto y coma (;) es interpretado por el ordenador 

como que le pides que escriba el siguiente caracter inmediatamente 

detras del anterior. ESCAPA de este programa pulsando dos veces 

la tecla ESC. Ahora cambia nuevamente la lihea 10, colocando esta 

vez el signo coma (,) en lugar del punto y coma anterior, e inmediatamente 

detras de las comillas de cierre. Es decir, debes escribir: 



10 print "hola", 
run ENTER 



ENTER 



Veras que el signo de coma en una instruccion PRINT, es interpretado 
por el ordenador como que debe escribir el siguiente caracter (o serie 
de caracteres) 13 posiciones mas alia de donde haya escrito el primero 
de la serie de caracteres anterior. Esta facilidad se aprovecha para 
exponer en pantalla los datos tabulados en columnas. Observa sin embargo, 
que si el numero de caracteres que compone una serie dada, excede 
de 12, el siguiente caracter seri'a desplazado hacia delante otras 13 
columnas, situandose por tanto en la columna numero 26. 

Otra vez, escapa de ese programa pulsando la tecla ESC dos veces 
consecutivas. Pero ahora, para que la memoria del ordenador quede 
completamente "en bianco" manten pulsadas sucesiva y simultaneamente 
las teclas SHIFT, CTRL y ESC en ese mismo orden, con lo que el 
ordenador se restaurara a si' mismo a las condiciones iniciales de 
funcionamiento. 

INPUT 

Esta instruccion se usa para hacer saber al ordenador que al 
cumplimentarla debe esperar a que se le IMPONGA un dato por teclado. 
Por ejemplo, cuando en el programa se hacen preguntas por pantalla 
y el usuario le responde por teclado. Escribe por ejemplo, el siguiente 
programa: 



• 



10 input "que edad tienes"; edad ENTER 
20 print "no 
run ENTER 



aparentas tener "; edad 



an os 



ENTER 



Pagina F2.8 



FUNDAMENTOS 



En la pantalla, cuando rules el programa, aparecera la pregunta: 
tque edad tienes? 

Contestale adecuadamente, que sera el dato IMPUESTO, y lo terminas 
pulsando ENTER. Si tu edad fuera de 18 anos, el ordenador sacaria 
por pantalla el mensaje: 

no aparentas tener 18 anos. 

Este ejemplo nos demuestra el uso de la instruccion INPUT, y de como 
el dato tecleado se IMPONE como el valor de una variable numerica, 
en este caso es la que tiene por nombre edad, tal y como esta resenada 
al final de la li'nea 10. Observa que a partir de ahora, el ordenador 
asociara a la variable con nombre edad el numero que le tecleaste 
en el momento de sacar en pantalla la pregunta correspondiente, y 
que ese mismo dato impuesto es el que expone posteriormente cuando 
cumplimenta la instruccion PRINT de la linea 20 donde figura esa 
variable numerica llamada edad. Aunque nemos usado como nombre 
de variable la paiabra edad en este ejemplo, podrfamos igualmente 
haber usado en forma mas breve otro nombre para la variable, como 
por ejemplo la letra b simplemente. 

Restaura el ordenador para borrar el programa que tienes en memoria 
(teclas CTRL, SHIFT y ESC. Si hubieras querido que el dato impuesto 
estuviera formado por una serie cualquiera de caracteres cualesquiera 
(letras, numeros o signos), deberias usar el signo dolar ($) al final del 
nombre de la variable, para indicarle al ordenador que le vas a imponer 
por teclado un "LITERO" en lugar de un "NUMERO" (el ordenador 
tornara ese dato "literalmente" tal como se lo escribas). 

Teclea el siguiente programa: (y observa que en la li'nea 20 debes colocar 
un espacio en bianco despues de la a de hola y antes de la y de yo). 



10 input "como 
20 print "hola 
run ENTER 



te 



llamas" ; 
nombre* 



nombre* ENTER 
yo me llamo ftlvaro' 



ENTER 



Luego veras en pantalla la pregunta: 
ccomo te llamas? 

Teclea tu nombre en ese momento, dato que sera IMPUESTO como 
valor de la variable que has llamado nombre$ en esa instruccion 20. 
Si tu nombre es Pepe, veras que aparece en la pantalla la frase: 

hola Pepe yo me llamo Alvaro 

Aunque en el ejemplo anterior hemos usado nombre$ para designar 
esa variable LITERAL (tambien llamada de cadena o sarta, o ristra) 
podrfamos haber usado simplemente una letra como por ejemplo a$. 
Es el signo dolar al final lo que distingue a las variables numericas 
de las variables literales. 



Pagina F2.9 



FUNDAMENTOS 



Vamos ahora a combinar estos dos ejemplos en un solo programa. Restaura 
el ordenador a sus condiciones iniciales pulsando CTRL, SHIFT y ESC, 
y luego tecleas la siguiente instruccion: 

5 els ENTER 

10 input "co«io te llamas"; a* ENTER 
20 input "que edad tienes"; b ENTER 
30 print "te felicito ";a* " no aparentas tener"; 

b " an os" ENTER 
run ENTER 

En este programa usamos dos variables, a$ para el nombre que sera 

un lftero, y b para la edad, que sera un numero. En la pantalla aparecera 

primero: 

ccokio te llamas? 

En este momento, puedes teclear tu nombre (v.g. Pepe) y luego pulsar 
ENTER. Con eso, el ordenador pasara a la siguiente instruccion por 
lo que en pantalla aparecera: 

cque edad tienes? 

Teclea ahora tu edad (v.g. 18) y luego pulsas ENTER. Con esto, el 
ordenador pasara a la siguiente instruccion, por lo que en pantalla 
aparecera: 

te felicito Pepe no aparentas tener 18 anos 

y con esto se termina la ejecucion de este sencillo programa. 



EDICION DE PROGRAMAS 

Si cualquiera de las lineas del programa ha sido tipograf iada 
incorrectamente, provocara un error sintactico u otra clase de error, 
y sera necesario revisar y corregir (editar es la palabra que usamos) 
esa linea en lugar de teclearla de nuevo. Para mostrarte la edicion 
de programas, puedes teclear el programa anterior pero en forma 
incorrecta. 

Ensaya por ejemplo con lo siguiente: 

5 clss 

10 input "cbmo te llamas"; a* ENTER 
20 input "que eda tienes"; b ENTER 

30 print "debo felicitarte "; a* ;" que no aparentas 
tener ": b ;" anos " ENTER 



Pagina F2.10 



FUNDAMENTOS 



Hay tres equivocaciones en el programa anterior: 

En la linea 5 pusimos c 1 s s en lugar de c 1 s. 

En la lfnea2o escribimos fedaf en lugar de edad. 

En la linea 30 olvidamos colocar un bianco entre el final de la 

palabra advertirte y las correspondientes comillas de cierre. 

Hay tres metodos para editar un programa. El primero es simplemente 
volver a leclear correctamente la linea. Cuando se teclea una linea 
con el mismo numero de una ya existente, el ordenador interpreta 
que simplemente queremos sustituir la que ya existe por la que ahora 
tecleamos. En segundo lugar, esta el metodo propiamente del ordenador 
en modo edicion, y finalmente podemos usar el metodo de copiar lo 
que aparece en pantalla mediante movimientos del cursor, como ya 
veremos. 

Metodo de Edicion 

Para corregir la equivocacion de la linea 5, teclea el comando: 

edit 5 ENTER 

El ordenador entra en el modo de edicion, y nos muestra dicha linea 
5 con el cursor situado directamente encima del 5. Para quitar la s 
extra de la palabra clss, desplaza el cursor hacia la derecha mediante 
la teCla de avance de cursor marcada (-»■) hasta que se situe sobre 
cualquiera de las eses, y luego pulsas la tecla CLR. Veras que la s 
desaparece de la pantalla (y de la memoria). Pulsa ENTER para indicar 
que la operacion ha terminado, y lista el programa para ver que esa 
instruccion ha sido corregida. Es decir, teclea 

list ENTER 

y veras que la linea 5 aparece ya corregida (tambien diriamos editada). 

Metodo de Copia moviendo el cursor 

Para corregir las equivocaciones de las lineas^O y 30, puedes hacerlo 
manteniendo pulsada la tecla SHIFT y pulsando la tecla de subida del 
cursor, marcada (+), hasta que el "cursor que copia" se situa en el 
principio mismo de la linea-3r0. Veras que el cursor principal no se 
ha desplazado, sino que tienes ahora dos cursores en la pantalla. Pulsa 
ahora la tecla de COPIAR marcada con la palabra COPY, hasta que 
el cursor de copiado se situe entre el espacio en bianco entre edad 
y las comillas de cierre. Observaras que la linea 20 se estaba tambien 
escribiendo en la ultima linea de la pantalla y que el cursor principal 
se detiene en la columna homologa a la del cursor de copia. Teclea 
ahora la letra d que falta, y observa como solo aparece en la ultima 
linea. Y ademas que el cursor principal si' se desplaza una posicion 
a la derecha, pero el cursor de copiar permanece donde estaba. 



Pagina F2.ll 



: iap 



FUNDAMENTOS 



Pulsa ahora la tecla COPY hasta que copies la totalidad de esa li'nea 
20; luego pulsas ENTER para indicar que la operacion ya VALE, y 
esa nueva li'nea ^JD corregida sustituye en la memoria a la anterior. 
El cursor de copia desaparece y el cursor principal se coloca por si' 
mismo bajo la nueva li'nea^O. 

Para corregir la segunJa equivocacion, manten pulsada la tecla SHIFT 
y pulsa la tecla de subida del cursor, marcada (+) hasta que el cursor 
de copiar aparezca situado al principio mismo de la li'nea 30. Pulsa 
la tecla COPY hasta que situe el cursor de copiar sobre las comillas 
de cierre que van inmediatamente detras de la palabra advertirte. 
Ahora simplemente pulsa la barra espaciadora una vez. Con eilo se 
insertara un espacio, como puedes comprobar en la li'nea que se esta 
escribiendo en la parte inferior. Luego continua copiando con la tecla 
COPY hasta que completes toda la li'nea 30. Pulsa la tecla ENTER 
para decir que vale, y ya puedes listar el programa y comprobar que 
todo esta corregido en la memoria del ordenador, lo que puedes hacer 
simplemente tecleando LIST ENTER. 

Restaura el ordenador pulsando las teclas CTRL, SHIFT y ESC. 



• 



• 
• 



IF THEN 

Vamos ahora a ampliar el programa anterior con el uso de instrucciones 
que solo SI se cumple una determinada condicion, son PUES 
cumplimentadas por el ordenador. 

Teclea lo siguiente, observando que hemos anadido dos si'mbolos, a 
saber, el signo MENOR QUE, marcado < y situado al lado de la tecla 
M, y el signo MAYOR QUE, marcado > y situado a continuacion de 
la tecla anteriormente citada. 



5 els ENTER 

10 input "c6mo te llamas"; a* ENTER 

20 input "que edad tienes"; edad ENTER 

30 if edad < 13 then 60 ENTER 

40 if edad < 20 then 70 ENTER 

50 if edad > 19 then 80 ENTER 

60 print "aun " ; a*;" no eres un adolescente con 

tus "; edad; " anos":end ENTER 

70 print "ya "; a$;" eres un adolescente a tus": 

edad;" anos":end ENTER 

80 print "comp render as 

un adolescente con tus 



a$; " que ya 
edad;" anos 1 



no eres 
ENTER 



Pagina F2.12 



FUNDAMENTOS 



Para comprobar que lo has tecleado correctamente, pide al ordenador 
que liste el programa y luego teclea: 

list ENTER 

Luego vete contestando las preguntas sugeridas por el ordenador y 
viendo lo que sucede. 

Analicemos ahora los efectos que los comandos IF...THEN tienen en 
un programa. Hemos anadido tambien la palabra end al final de las 
li'neas 60 y 70. Obviamente, este comando end se emplea para que 
el ordenador TERMINE de ejecutar el programa. Si no estuviera ese 
comando end en la li'nea 60, el programa continuaria rulando y llevando 
a cabo las instrucciones resenadas en las li'neas 70 y 80. 

De igual manera, si no estuviera el comando end en la li'nea 70, el 
programa continuaria pasando y cumplimentando las instrucciones de 
la li'nea 80. El signo dos puntos (:) antes de la palabra end separa este 
comando del comando anterior. Los dos puntos se usan para poder 
incluir dos o mas instrucciones dentro de una misma li'nea del programa; 
se tiene lo que llamamos li'nea multi-instruccion. Tambien hemos anadido 
la li'nea 5 para limpiar la pantalla al inicio del programa. Haremos 
eso mismo a partir de ahora para que los resultados aparezcan mas 
esteticos. 

Otras palabras asociadas con la instruccion IF...THEN son ELSE, OR 

y GOTO. El uso de esas palabras dentro de esta clase de instrucciones 
se te hara mas obvio a medida que progreses en el estudio de esta 
Gui'a. 

Restaura el ordenador pulsando las teclas CTRL, SHIFT y ESC. 

FOR...TO...NEXT 

Vamos ahora a mostrar el uso de los comandos FOR y NEXT, que nos 
permiten obligar al ordenador que repita la serie de instrucciones incluidas 
entre la instruccion FOR...TO y la instruccion NEXT. Para este ejemplo 
mostraremos la manera en que podemos hacer que el ordenador exponga 
la tabla de multiplicar por el numero 12 (1x12, 2x12, 3x12, etc.). Es 
decir, que repita el producto, CON (FOR) uno de los datos, variando 
desde el valor inicial 1, HASTA (TO) que ese dato llegue a tener como 
valor final 12. Observa que el producto se simboliza en BASIC mediante 
el signo asteri'sco (*). Teclea lo siguiente: 

5 els ENTER 

10 for a = 1 to 20 ENTER 

20 print a" * 12 ="a*12 ENTER 

30 next a ENTER 

run ENTER 



Pagina F2.13 



FUNDAMENTOS 



Observaras que las columnas aparecen desordenadamente en pantalla, 
asi' que teclea ahora: 

5 els ENTER 

10 for a = 1 to 9 ENTER 

20 print a" * 12 ="a*12 ENTER 

30 next a ENTER 

40 for a = 10 to 20 ENTER 

50 print a"* 12 ="a*12 ENTER 

60 next a ENTER 

run ENTER 

Experimenta con este programa para hallar las tablas de multiplicar 
usando otros numeros. Por ejemplo, si quieres ver la tabla del 17, sustituye 
el numero 12 de las li'neas 20 y 50 por el numero 17. Finalmente, restaura 
como siempre el ordenador con las teclas CTRL, SHIFT y ESC. 

Observa que es posible especificar el valor por el que se incrementa 
la variable que controla este bucle cuando va a efectuar OTRA (NEXT) 
ronda, usando la palabra reservada para definir el paso (STEP). Para 
mas informacion, estudia la descripcion de ios bucles FOR—NEXT 
en el capi'tulo 8. 

ARITMETICA SIMPLE 

Tu ordenador CPC^64 puedes usarlo tambien como un calculador de 
sobremesa. 

Para comprender esta forma de operar, realiza los siguientes ejemplos. 
Como ya sabes, podemos usar el signo de interrogacion (?) en lugar 
de teclear la palabra PRINT, y asi' abreviar. Las respuestas se expondran 
en pantalla tan pronto como pulses la tecla ENTER. 

ADICION 

Usa la tecla SHIFT y la marcada con ; para conseguir el signo mas 

Teclea 

?3+3 ENTER 
& 

(observa que no tienes que teclear el signo =) 
Teclea: 

?8+4 ENTER 
12 



Pagina F2.14 



FUNDAMENTOS 



SUSTRACCION 

Directamente consigues el signo <menos, sin teclear SHIFT). 

Teclea: 

?4-3 ENTER 
1 

Teclea 

?8-4 ENTER 



MULTIPLICACION 

Teclea SHIFT y :, para conseguir el * que simboliza en BASIC la 
multiplicacion. 

Teclea: 

?3*3 ENTER 
9 

Teclea: 

?8*4 ENTER 
32 

DIVISION 

Directamente consigues la / que simboliza la division. 
Teclea: 

?3/3 ENTER 
1 

Teclea: 

?8/4 ENTER 



RAIZ CUADRADA 

Para hallar la raiz cuadrada de un numero, teclea la funcion SQR (X), 
siendo el argumento de la funcion, la X, el numero cuya raiz cuadrada 
quieres saber. 

Teclea: 

?sqr<16) ENTER 
4 

lo que significa /l6. 

Teclea: 

?sqr<100> ENTER 
10 
Pagina F2.15 



FUNDAMENTOS 



EXPONENCIACION 

Usa directamente el signo de "elevado a", marcado con + . (Esta debajo 
de la L. 

La potencia de un numero es el resultado de multiplicar ese numero 
tantas veces como indica el exponente. Por ejemplo 3 2 , 3 3 , 3 . Teclea: 

?3t3 ENTER 
27 

esto significa 3 3 

Teclea: 

?8t4 ENTER 
4096 

eso significa 8 4 

RAIZ CUBICA 

Facilmente puedes calcular rai'ces cubicas, si recuerdas que son equivalentes 
a elevar el numero a la potencia 1/3. 

Para hallar la raiz cubica de 27 (V27). Teclea: 

?27f(l/3) ENTER 
3 

Para hallar la raiz cubica de 125, teclea: 
?125f(l/3) ENTER 



CALCULOS COMBINADOS (+, -, *, /) 

Los calculos combinados son bien interpretados por el ordenador, siempre 
y cuando se calculen de acuerdo con las prioridades estipuladas para 
cada operacion. 

La primera prioridad corresponde a la multiplicacion, luego la division, 
luego la adicion, y finalmente la sustraccion. Esas prioridades se aplican 
unicamente cuando en la expresion figuran solo estas cuatro operaciones. 
Las prioridades seran ampliamente explicadas mas adelante e incluiran 
otras clases de operacion. 

Si el calculo fue: 

3+7-2*7/4 

Puedes pensar que podria calcularse en la forma siguiente: 

3+7-2 *7 /4 
8 *7 /4 
56/4 
14 



Pagina F2.16 



i 



FUNDAMENTOS 



Pero de hecho, el ordenador lo calcula como: 

3+7-2*7/4 
=3+7-14/4 
=3+7-3. 5 
= 10-3.5 
=6.5 



Compruebalo tecleando esta expresion tal y como esta escrita. 
Teclea: 



?3+7-2*7/4 
6.5 



ENTER 



Puedes cambiar la manera en que el ordenador calcula una expresion 
si empleas parentesis. El ordenador tratara primero las operaciones 
incluidas dentro de los parentesis de acuerdo con las prioridades 
establecidas, y luego pasara a las que estan fuera de los parentesis. 
Ensayalo tecleando la expresion anterior y colocando parentesis, tal 
y como el siguiente ejemplo: 

?< 3+7-2 >*7/4 ENTER 
14 



MAS SOBRE POTENCIACION 

Si quieres usar en tus calculos numeros muy grandes o muy pequenos, 
es conveniente que uses la denominada notacion cientffica. En esta 
notacion se usa la letra E para indicar exponentes de los numeros con 
relacion a la base 10. Puedes usar la e minuscula o la E mayuscula. 

Por ejemplo, 300 es lo mismo que 3xl0 2 ; por lo que en notacion cienti'fica 
diriamos 3E2. Similarmente, 0,03 (la coma decimal es el punto decimal 
de los angloparlantes) es lo mismo que 3.10" 2 . Ensaya con los siguientes 
ejemplos: 

1. 30x10 

Puedes teclear en el ordenador: 

?30*10 ENTER 
300 

o puedes teclear: 

?3el*iei ENTER 
300 

2. 3000x1000 

Teclea: 

?3e3*le3 ENTER 
3000000 



Pagina. F2.17 



FUNDAMENTOS 



3. 3000x0,001 
Teclea: 

?3e3*le-3 ENTER 
3 



Pagina F2.18 



AMSTRAD CPC464 



Fundamentos 3: 



GRAFICOS, MODOS 
Y SONIDOS 



El Ordenador Personal a Color AMSTRAD CPC464 dispone de tres 
modos de operacion en lo referente a la presentacion de imagenes 
en pantalla: Modo 0, Modo 1 y Modo 2. 

Cada vez que se pone en marcha el ordenador, automaticamente adopta 
el Modo 1. 

Para comprender estos tres modos diferentes, enciende el ordenador 
y pulsa la tecla marcada con 1. Mantenla pulsada hasta que rellenes 
dos lfneas de unos. Si contaras la cantidad de unos que hay en cada 
linea, veras que son 40. Eso significa que en el modo 1, el "prescrito" 
como normal, hay 40 columnas en cada linea de texto. Pulsa ENTER 
-y obviamente obtendras un mensaje de error sintactico- pero no te 
preocupes, es una manera rapida y simple de volver a conseguir el 
aviso Ready, que te dice que el ordenador esta dispuesto para recibir 
tus ordenes. 

Teclea ahora: mode <Z> ENTER 

Veras que los caracteres en la pantalla se ensanchan. Pulsa como antes 
la tecla con el 1 y mantenla pulsada hasta que rellenes dos lfneas completas 
de unos. Si cuentas el numero de unos en cada linea, veras que son 
20. Eso significa que en el modo 0, hay 20 columnas por cada linea. 
Pulsa de nuevo ENTER. 

Ahora teclea: mode 2 ENTER 

Veras que este es el modo en que los caracteres son mas estrechos, 
y que si tecleas filas de unos como antes, contaras 80 columnas por 
cada linea. Eso significa que el modo 2 corresponde a una imagen de 
80 columnas. Para resumir: 



Modo 
Modo 1 
Modo 2 



= 20 columnas 
= 40 columnas 
= 80 columnas 



Finalmente, pulsas otra vez la tecla ENTER. 

COLORES 

Hay una gama de 27 colores. Obviamente, en un monitor de fosforo 
verde (GT64) aparecen como diferentes matices de verde. Si has comprado 
el monitor GT64, puedes adquirir el modulador/alimentador MP1 AMSTRAD 
con el fin de aprovechar las posibilidades de color en tu ordenador 
empleando tu televisor cassette. 



Pagina F3.1 



jfipf 



FUNDAMENTOS 



En el Modo 0, hasta 16 de los 27 colores disponibles pueden aparecer 

en la pantalla en cualquier momento. 

En el Modo 1, hasta 4 de los 27 colores pueden aparecer en pantalla 

en cualquier momento. 

En el Modo 2, hasta 2 de los 27 colores pueden aparecer en pantalla 

en cualquier momento. 

Tambien podras cambiar el borde de la pantalla (BORDER), el area 
en que aparecen los caracteres (PAPER) o la PLUMA con que el ordenador 
pintara los caracteres (PEN), y estas tres facetas, todas independientemente 
una de otra. 

Los 27 colores disponibles se enumeran en la tabla 1, cada uno con 
el numero que sirve de referenda a la TINTA que se usa tanto para 
el papel como para la pluma. 

TABLA MAESTRA DE COLORES 



N° Tinta 


Color Tinta 


N° Tinta 


Color Tinta 





Negro 


14 


Azul Pastel 


1 


Azul 


15 


Naranja 


2 


Azul Brillante 


16 


Rosa 


3 


Rojo 


17 


Magenta Pastel 


4 


Magenta 


18 


Verde Brillante 


5 


Malva 


19 


Verde Marino 


6 


Rojo Brillante 


20 


Ciano Brillante 


7 


Purpura 


21 


Verde Lima 


8 


Magenta Brillante 


22 


Verde Pastel 


9 


Verde 


23 


Ciano Pastel 


10 


Ciano 


24 


Amarillo Brillante 


11 


Azul Cielo 


25 


Amarillo Pastel 


12 


Amarillo 


26 


Blanco Brillante 


13 


Blanco 







Tabla uno: Los numeros de tinta (INK) y los colores correspondientes. 

Como mencionamos anteriormente, cada vez que se pone en marcha 

el ordenador adopta el modo 1 para las imagenes en pantalla. Los colores 

del BORDE, PAPEL, y PLUMA en este momento son: 

Borde: Numero de TINTA: 1 (azul) 

Papel (el fondo): Numero de TINTA: 1 (azul) 

Pluma (los si'mbolos): Numero de TINTA: 24 (amarillo brillante) 



Pagina F3.2 



FUNDAMENTOS 




jEEHL 



PLUMA 

BORDE 
PAPEL 



El BORDE es el area que rodea al PAPEL. (Observa que al poner en 

marcha el ordenador, tanto el BORDE como el PAPEL son azules). 

El PAPEL es el area de la pantalla rodeada por el BORDE, donde aparecen 

los caracteres. La PLUMA es la que usa el ordenador "para pintar 

los caracteres", y tiene plumas con diferente tinta. 

Para explicar esto mas detalladamente, es por lo que hemos asociado 
los comandos PEN y PAPER usados para las imagenes del monitor 
a realmente una PLUMA de escribir y a una hoja de papel para notas. 
A medida que el color de la TINTA con que se impregna la PLUMA 
se cambia, se cambia tambien el color con que los caracteres aparecen 
en pantalla. A medida que se cambia el color de la TINTA empleada 
para "entintar" el papel, asi' cambiara el color con que el fondo aparece 
en la pantalla. 

Para cambiar el color del BORDE que rodea al papel: 

border ENTER 

Con eso veras que el BORDE cambia* de color, pasando del azul al 
negro. Si consultas la Tabla 1, veras que el color con numero 
corresponde al negro. El BORDE puede cambiarse a cualquiera de los 
colores de esa tabla mediante el comando BORDER, seguido del numero 
de color que se desea. 

Ahora teclea: 

els ENTER 

para limpiar la pantalla. 

Para ver como cambia el color del PAPEL, teclea: 

paper 2 ENTER 

Veras como con eso, el color del fondo que enmarca la palabra Ready 
ha cambiado a un color ciano brillante. Y no es exactamente el azul 
brillante que esperabas!! 

Teclea ahora: 

els ENTER 



Pagina F3.3 



FUNDAMENTOS 



para que se limpie la pantalla y quede completamente con el nuevo 
color de PAPEL. 

Para ver como cambia el c^lor de la PLUM A, teclea: 

PEN 3 ENTER 

Veras que el color de los caracteres ha cambiado y que la palabra 
Ready aparece con sus letras escritas en un rojo brillante, y no en un 
simple rojo. 

Teclea ahora: 
els ENTER 

Para que comprendas mas facilmente lo que ha sucedido aquf, debes 
tambien consultar la Tabla 2. Cuando se pone en marcha el ordenador, 
usa como numero de PAPEL el numero 0. Y si miras en la Tabla 2, 
en la primera columna que corresponde al numero de PAPEL o de 
PLUMA, encontraras el numero 0. Si ahora sigues la lfnea correspondiente 
al 0, te encontraras en la columna del modo 1, que figura como numero 
de color el 1. 

Si ahora pasas a consultar la tabla maestra de colores (Tabla 1) veras 
que al numero 1 le corresponde tinta azul, que es el color del PAPEL 
que observaras al poner en marcha el ordenador, como ya te hemos 
dicho. 

En los ejemplos anteriores, cambiamos el papel con la instruccion PAPER 
2. Si en la columna izquierda de la tabla 2, buscas el numero 2 y luego 
sigues esa li'nea hasta la columna correspondiente al modo 1, veras 
que tienes como numero de color e) 20. Y volviendo a la tabla 1, veras 
que el color con numero 20 es el ciano brillante que mencionamos. 



Pagina F3.* 



FUNDAMENTOS 





COLOR DE LA TINTA 






N° Papel/Pluma 


Modo 




Modo 1 


Modo 2 







1 




1 


1 




1 


24 




24 


24 




2 


20 




20 


1 




3 


6 




6 


24 




4 


26 




1 


1 




5 







24 


24 




6 


2 




20 


1 




7 


8 




6 


24 




8 


10 




1 


1 




9 


12 




24 


24 




10 


14 




20 


1 




11 


16 




6 


24 




12 


18 




1 


.1 




13 


22 




24 


24 




14 


Parpadeo 


1,24 


20 


1 




15 


Parpadeo 


16,11 


6 


24 





Tabla dos: Referencias PAPEL/PLUMA/MODO/TINTA 




Pagina F3.5 



FUNDAMENTOS 



La PLUMA usada cuando el ordenador se pone en marcha es la numero 
1. Consultando la Tabla 2 y buscando en la columna de modo 1 la que 
corresponde a una PLUMA con numero 1, veras que es el numero de 
color 24. Si consultas ahora la Tabla 1, veras que el numero de color 
24 es amarillo brillante, que es el color con que aparecen los caracteres 
(pintados por la PLUMA) cuando se pone en marcha el ordenador, como 
ya mencionamos. En los ejemplos, cambiamos el numero de pluma 
mediante el comando PEN 3. Si consultamos la Tabla 2, veremos que 
para esa pluma numero 3 y estando en el modo 1, le corresponde como 
numero de color el 6. Y en la Tabla 1 vemos que el color 6 es rojo 
brillante. Que era lo que habiamos comentado. 

En este momento, estamos pues usando un PAPEL numero 2, y una 
PLUMA numero 3. Podemos continuar cambiando estos colores y podemos 
hacerlo usando el comando INK. Este comando de TINTA, tiene dos 
numeros. El primero es el numero de la PLUMA o del PAPEL que 
queremos cambiar; el segundo es el numero que queremos asignar a 
la PLUMA o PAPEL respectivamente. Consulta la Tabla 1 para ver 
los numeros de los colores, como ejemplo te mostraremos como cambiar 
el color de papel con numero 2 a negro, y el color de la pluma con 
numero 3 a bianco brillante. En la Tabla 1, veras que el numero de 
color para el negro es el 0, y el numero de color para el bianco brillante 
es el 26. 

Por lo tanto, puedes teclear ahora: 
ink 2,0 ENTER 

(Como explicamos, 2 es el numero del PAPEL vigente, y es el numero 
de color del negro). 

Ahora teclea: 

ink 3, 26 ENTER 

(3 es el numero de PLUMA vigente y 26 es el numero de color bianco 
brillante). 

Ahora restaura completamente el ordenador a sus condiciones iniciales, 
pulsando las teclas CTRL, SHIFT y ESC. 

Como explicamos anteriormente, cada vez que se pone en marcha 
la maquina, o se restaura a las condiciones iniciales usando las teclas 
CTRL, SHIFT y ESC, el PAPEL tiene por numero de y la PLUMA 
tiene por numero el 1. El color de un PAPEL con numero 1, es azul 
y el de una PLUMA con numero 24, es amarillo brillante. Eso se teclearia 
como ink 0,1 para el PAPEL, e ink 1,2* para la PLUMA. Para cambiar 
inmediatamente estos colores a caracteres pintados en bianco (PLUMA) 
sobre un fondo negro (PAPEL), teclea: 

ink 0,0 ENTER 



Pagina F3.6 



FUNDAMENTOS 



Y luego teclea: 
ink 1,26 ENTER 

COLORES PARPADEANDO 

Es posible hacer que los colores de los caracteres alternen entre uno 
y otro, logrando el parpadeo o destelleo. Eso puede lograrse anadiendo 
un numero extra de color dentro del comando INK relativo a la PLUMA. 
Por ejemplo, para ver los caracteres alternativamente en bianco brillante 
y rojo brillante, teclea: 

ink 1,26,6 ENTER 

En este caso, 1 es el numero de la PLUMA, mientras que 26 es el 
nuevo color bianco brillante y 6 es el otro color empleado rojo brillante. 

Tambien es posible hacer que el color del papel situado detras.de los 
caracteres sea el que alternativamente cambie de un color a otro. 
Eso puede lograrse como antes, anadiendo un numero extra de color 
al comando INK tecleado para el PAPEL. 

Por ejemplo, para ver que el PAPEL cambia alternativamente entre 
verde y amarillo brillante, por detras de los caracteres, teclea: 

ink 0,9,24 ENTER 

En este caso, es el rtumero del PAPEL, mientras que 9 es el nuevo 
color verde y 24 el color alternative amarillo brillante. 

Restaura ahora el ordenador usando CTRL, SHIFT y ESC. 

Observa que el modo 0, en la Tabla 2, figuran dos numeros de tinta 
o de papel (numeros 14 y 15) que estan prescritos como colores 
parpadeantes. En otras palabras, no es necesario anadir un numero 
extra en el comando de tinta, cuando se usan esos numeros 14 6 15. 

Teclea lo siguiente: 

mode ENTER 
pen 15 ENTER 

y en la pantalla, veras que la palabra Ready es alternativamente pintada 
en azul cielo y rosa. 

Ahora teclea: 
paper 14 ENTER 
els ENTER 

Veras que ademas de que parpadeen los caracteres de la palabra Ready 
entre azul cielo y rosa, el fondo de la imagen, el PAPEL, tambien 
cambia alternativamente de color entre azul y amarillo brillante. 



Pagina F3.7 



FUNDAMENTOS 



Y encima ademas, es posible cambiar estos colores parpadeando prescritos 
en el ordenador, si le tecleas un nuevo comando INK tan to para el 
PAPEL como para la PLUMA. Para cambiar el color de la PLUMA 

a un parpadeo entre negro y bianco brillante, teclea: 

ink 15,0,26 ENTER 

En este caso, 15 es el numero de PLUMA, mientras que es el numero 
de color del negro, y 26 es el numero de color bianco brillante. 

Finalmente, tambien es posible hacer que el BORDE parpadee, cambiando 
entre dos colores, si anadimos un numero extra de color dentro del 
propio comando BORDER. Teclea: 

border 6,9 ENTER 

Y veras que todo el area del BQRDE esta cambiando entre rojo brillante 
y verde. 

Ahora restaura el ordenador mediante CTRL, SHIFT y ESC, y preparate 
que todavia hay mas cosas. 



PROGRAMA DE DEMOSTRACION 

Para mayor demostracion de los colores disponibles, teclea y ejecuta el 
siguiente programa: 

10 mode 0: ink 0,2: ink 1,24: paper ENTER 

20 pen l: for b=0 to 26: border b ENTER 

30 locate 3, 12: print "COLOR DEL MBRGEN";B ENTER 

40 sound 4, (40-b) ENTER 

50 for t=l to 600:next t:next b:cls ENTER 

60 for p=0 to 15: paper p:pen 5: print "FONDO" ■ 

p=print ENTER 
70 for n=0 to 15: pen n : print "TRflZO'-jn ENTER 
80 sound 1, (n*20+p) ENTER 
90 for t=l to 100:next t:next n ENTER 
100 for t=l to 1000:next t:cls:next p ENTER 
110 cls:paper 0: pen l: locate 7,12: print 

"FIN": for t=l to 2000: next t ENTER 
120 mode l: border l:ink 0,1: ink i,24:paper 0: 

pen 1 ENTER 

run ENTER 



Pagina F3.8 



FUNDAMENTOS 



Hemos incluido ademas, algunos sonidos en el programa. Mas adelante 
los explicaremos en la seccion pertinente. 

GRAFICOS 

De ahora en adelante, no te pediremos que pulses la tecla ENTER 
despues de cada Ifnea. Simplemente supondremos que ya se ha convertido 
en un habito automatico en ti'. 

Hay cierto numero de caracteres en la memoria del ordenador que 
corresponden a los si'mbolos (letras, cifras, signos, etc.) que usamos 
para las comunicaciones con el ordenador. Para obtener cualquiera 
de esos si'mbolos, usamos la palabra clave chr$(X), siendo la X incluida 
dentro de los parentesis el numero que corresponde a ese simbolo, 
que debe estar dentro de la gama 32 a 255. 

Pulsa CTRL, SHIFT y ESC para restaurar el ordenador y luego teclea: 

print chr*<250) 

En la pantalla veras el simbolo que corresponde al caracter con numero 
250, y en este caso, es un hombre en postura de caminar hacia la derecha. 

Para ver todos los si'mbolos que pueden aparecer en pantalla, junto 
con su numero asociado de caracter, teclea el siguiente programa: 

10 for n=32 to 255: print n;chr$(n) 
20 next n 

run 

Como referenda, la gama de caracteres junto con los numeros asociados 

y los si'mbolos que representan, aparece en el Apendice III al final 

de este libro. 



UBICANDO EL CURSOR 

Existe un comando que se usa para ubicar el cursor de texto en una 

parte especi'fica de la pantalla. A menos que se UBIQUE el cursor 

en un sitio determinado, mediante el comando LOCATE, el cursor 

de caracteres comienza en la esquina superior izquierda de la pantalla, 

que corresponde a las coordenadas x (eje horizontal) e y (eje vertical) 

de valores 1,1. En el modo de imagen \, sabemos que hay 40 columnas 

y 25 li'neas dentro del area de exposicion de caracteres. Para, situar 

un determinado caracter en el centro de la linea superior de. la pantalla, 

estando en el modo 1, usari'amos la pareja 20,1 como coordenadas x,y. 

Para ver esto, teclea: (recuerda que despues de cada linea has de pulsar 
ENTER). 



mode 1 



.limpia la pantalla, y el cursor a su posicion 
de base. 

Pagina F3.9 



FUNDAMENTOS 



10 locate 20, 1 

20 print chr* (250) 

run 

Simplemente para comprobar que esta en la ifnea superior, puedes 
teclear: 

border 

Con esto, el BORDE se habra puesto en negro, y veras mas facilmente 
que el hombrecillo esta situado en le medio de la li'nea superior de 
la pantalla. 

En el modo 0, solo hay 20 columnas, pero las mismas 25 li'neas. Si 
ahora tecleas: 
mode 
run 

Veras que el hombre aparece ahora en la esquina superior derecha 
de la pantalla. Eso sucede porque la coordenada x con valor 20, es 
la ultima columna si esta en el modo 0. 

En el modo 2, hay 80 columnas y 25 li'neas. Usando este mismo programa, 
probablemente seras capaz de predecir donde aparecera el hombrecillo. 
Teclea pues: 

mode 2 
run 

y ahora regresa al modo 1, simplemente tecleando: 

mode 1 

Ahora experimenta por ti' mismo, modificando la ubicacion del cursor 
y el numero de la funcion caracter para situar diferentes si'mbolos 
en cualquier parte de la pantalla. Meramente como ejemplo, teclea: 

locate 20, 12: print chr* (240) 

Veras una flecha en el centro de la pantalla. Observa que en este comando: 

• 20 es el valor de la coordenada horizontal (x) en la gama 1 a 40. 

• 12 es el valor de la coordenada vertical (y) en la gama 1 a 25. 

• 240 es el numero de caracter cuyo si'mbolo se expone en pantalla 

(en la gama 32 a 255). 

Para conseguir que el si'mbolo asociado al caracter 250 sea repetido 

a lo ancho de la pantalla, teclea el siguiente programa: 

5 els 

10 for x = 1 to 39 

locate x, 20 

print chr* (250) 

next x 

goto 5 



20 
40 
50 
60 
run 



Pagina F3.10 



FUNDAMENTOS 



Pulsa la tecla ESC dos veces para escapar de este programa que nunca 
termina. 

Con el fin de quitar de la pantalla el caracter anterior, antes de mostrar 
otro caracter, puedes teclear: 

40 print " '•; chr*(250) 

(Al escribir esta li'nea 40, automaticamente sustituye a la li'nea que 
previamente tenia como numero el 40). 

Ejecuta ahora el programa para comprobarlo. 

run 

Para mejorar el movimiento del caracter a lo ancho de la pantalla, 
afiade la siguiente lihea: 

30 call &bdl9 

Este programa puede mejorarse adicionalmente, perfeccionando el 
movimiento al anadirle algunos bucles de retardo y usando un si'mbolo 
diferente para la vuelta. 

Teclea: 
list 

Y ahora anade las siguientes lineas a este programa: 

60 for n = 1 to 300 : next n 

65 for x = 39 to 1 step-1 

70 locate x, 20 

75 call &bdl9 

80 print chr* (251) ;" " 

85 next x 

90 for n = 1 to 300: next n 

95 goto 10 

run 



Intenta este programa interesante a pesar de su brevedad. Hemos afiadido 
algunos otros comandos que explicaremos en capitulos subsiguientes. 
Por ahora, simplemente teclea: 

new 

10 mode 1 

20 locate 21,14:print chr*<244) 

30 tag 

40 for x=0 to 624 step 2 

50 mover -16, 

60 if x<308 or x> 340 then y=196sgoto 90 

70 if x <324 then y=x-104:goto 85 



Pagina F3.ll 



80 y=536-x 

85 sound 1,0,20, 7 

90 move ox, oysprint " " ; : ox=x: oy=y 

100 move x,y 

110 if (x mod 4) = then print chr*<250> 

else print chr*(251) ; 
120 for n=l to 4: call &bd!9:next n 
130 next x 
140 tagoff 
150 goto 20 
run 



FUNDAMENTOS 



PLOT 

A diferencia del comando de ubicacion del cursor, el comando de PINTAR 
se usa para determinar la posicion del cursor interno usado para graficos, 
que usa otros ejes de coordenadas, y con diferentes medidas. De hecho, 
determina la resolucion en pantalla, y lo que se.pinta es un diminuto 
punto que solemos llamar MOTA (o bien pixel como abreviatura de 
elemento pictorico). 

Observa que el cursor grafico es invisible, y es tambien independiente 
del cursor de texto o caracteres. 

Puedes pintar 640 motas dentro de una linea horizontal, y 400 motas 
dentro de cada linea vertical. Usando las coordenadas x, y, se toma 
como origen la esquina inferior izquierda de la pantalla, que por tanto 
tiene coordenadas 0,0. A diferencia del comando de ubicacion del cursor 
usado para caracteres, las coordenadas usadas para las motas son 
independientes del modo 0, 1, 2 en que este el ordenador. 

Para experimentar con esto, restaura primero el ordenador usando 
CTRL, SHIFT y ESC, y luego teclea, recordando pulsar ENTER al final 
de cada linea, el siguiente comando: 

plot 320,200 

Y veras que aparece en el centro de la pantalla un punto diminuto: 
la MOTA. 

Cambia ahora el modo, tecleando: 

mode 

plot 320,200 

Veras que la mota continua todavia en el centro de la pantalla, pero 
ahora es mas grande en su dimension horizontal. 

Cambia el modo de nuevo y teclea el mismo comando para ver el efecto 

en el modo 2. Por tanto teclea: 

mode 2 

plot 320,200 

Pagina F3.12 ' 



FUNDAMENTOS 



La mota continua en el centro, pero ahora es mucho mas pequena. 

Pinta diferentes motas en diversos sitios de la pantalla y usando diversos 
modos, con el fin de acostumbrarte a este comando. Cuando hayas 
concluido, regresa al modo 1 y limpia la pantalla, simplemente con 
el comando: 

mode i 



DRAW 

Restaura primero el ordenador usando CTRL, SHIFT y ESC. Este comando 
DRAW, nos permite DIBUJAR una li'nea a partir de la corriente posicion 
del cursor de graficos. Para ver esto con mas detalle, dibuja un rectangulo 
en la pantalla usando el programa del ejemplo. En el se comienza por 
situar el cursor grafico mediante el comando de PINTE. Luego se traza 
una linea desde esa posicion del cursor, hacia la esquina superior izquierda, 
luego desde allf hacia la esquina superior derecha, etc. 

Teclea: 
5 els 

10 plot 10, 10 
20 draw 10, 390 
30 d raw 630, 390 
40 draw 630, 10 
50 draw 10, 10 
60 goto 10 
run 

Pulsa dos veces ESC para "interrumpir" la ejecucion de este programa 
sin fin. 

Ahora anade al programa las siguientes li'neas que dibujan un segundo 
rectangulo dentro del primero. Teclea: 

60 plot 20,20 
70 draw 20, 380 
80 draw 620,380 
90 draw 620,20 
100 draw 20, 20 
200 goto 10 
run 

Pulsa dos veces la tecla ESC para "rumpir" la ejecucion de este programa. 



Pagina F3.13 



FUNDAMENTOS 



CIRCULOS 

Los circulos puedes ser pintados (mota a mota) o dibujados (a trazos 
o lineas). Un metodo para formar un circulo, es pintar las coordenadas 
x, y de cada uno de los puntos de la circunferencia. Consulta la figura 
inferior y veras como el punto p de la circunferencia puede pintarse 
usando como coordenadas x e y las dadas por las ecuaciones: 

x=190*cos(a) 
y=190*sin(a) 



/ 



LIMITE DE 
LA PANTALLA 




320 



J 



Vamos ahora a comenzar a usar la palabra clave NEW antes de teclar 
un programa, para que deje como NUEVA la memoria del ordenador. 
Es decir, con este comando se le dice al ordenador que vacie 
completamente la memoria en forma similar a lo que hacemos con 
la restauracion de condiciones iniciales (CTRL, SHIFT y ESC). Sin 
embargo, difiere de la restauracion en que no se limpia la pantalla, 
sino solamente la memoria. Es util si queremos mantener en pantalla 
el programa viejo para que nos sirva de referenda al escribir un NUEVO 
programa. 

Volvamos ahora a ver como pintamos un circulo. En el programa anterior, 

los puntos pintados lo eran con respecto a la esquina inferior izquierda 

de la pantalla. Si ahora queremos situar el circulo en el centro de 

la pantalla, tendriamos que pintar el centro del circulo en las coordenadas 

320, 200; y luego pintar todos los puntos del circulo con relacion a 

ese centro, anadiendole las coordenadas x, y como funcion del angulo. 

Por lo tanto, para pintar el circulo, seria algo como esto: 
new 
5 els 

10 for a=l to 360 
deg 

320, 200 

320+190*cos (a) , 200+190*sin (a) 



15 
20 
30 
40 
run 



plot 
plot 
next 



Pagina F3.14 



FUNDAMENTOS 



El radio del cfrculo puede reducirse disminuyendo la cifra de 190 que 
aparece en el programa (el 190 se refiere a numero de motas). 

Para ver el efecto de las medidas angulares que usamos, (entre radianes 
o grados), suprime la linea 15 del programa anterior que fija esa medida 
en grados. Simplemente teclea 15 y RETURN, y ejecuta de nuevo el 
programa. 

Para ver un cfrculo solido (y no simplemente la circunferencia) dibujado 
mediante li'neas trazadas desde el centro, edita la linea 30 sustituyendo 
la palabra clave plot con la palabra clave draw. La linea 30 sera pues: 

draw 320+190*cos(a) , 200+190*sin (a) 

Ensaya esto tambien con y sin la linea 15 que anteriormente suprimimos. 

Observaras que en la linea 40 de este programa hemos usado next 
en lugar de next a. 

Es aconsejable teclear simplemente next en los programas. El ordenador 
determinara a que bucle e instruccion FOR esta asociado esa instruccion 
NEXT. Solo en programas donde hay numerosos bucles FOR—NEXT, 
puede ser aconsejable anadir la variable de control correspondiente 
despues de cada instruccion NEXT con el fin de que puedas identificar 
mas facilmente los bucles al examinar el programa. 



ORIGEN 

En el programa anterior, usamos el comando PLOT para designar el 

centro del cfrculo, y luego anadfamos las coordenadas x, y de los puntos 

de la circunferencia relativas a ese centro. En lugar de efectuar esta 

suma, podemos usar el comando que fija el ORIGEN de coordenadas. 

Si con el senalamos el centro de un cfrculo, simplemente despues solo 

tenemos que precisar las coordenadas x, y de todos los puntos de la 

circunferencia (en pasos de un grado) con respecto a este nuevo origen. 

Para verlo, teclea: 

new 

5 els 

10 for a = 1 to 360 

15 deg 

20 origin 320,200 

30 plot 190*cos(a> , 190*sin(a) 

40 next 

run 

En este programa, tambien puedes alterar la lfneal5 para quitar los 
grados, y/o la linea 30 para dibujar un cfrculo en lugar de pintar una 
circunferencia. 



Pagina F3.15 



FUNDAMENTOS 



Para pintar cuatro pequenos circulos en pantalla, teclea el siguiente 

programa: 

new 

5 els 



10 
15 
20 
30 
40 
50 
60 
70 
80 
90 



to 360 



for a=l 

deg 

origin 196,282 

plot 50*cos(a) , 50*sin<a> 

origin 442,282 

plot 50*eos(a>, 

origin 196, 1 16 

plot 50*cos(a), 

origin 442, 1 16 

plot 50*cos(a) , 50*sin(a) 
100 next 
run 



50*sin(a) 
50*sin<a) 



De nuevo, tambien puedes experimentar con la linea 15 y modificar 
las lineas 30, 50, 70 y 90 para usar el comando DIBUJE en lugar del 
comando PINTE. 



GOSUB RETURN 

Si hay una serie de instrucciones dentro de un programa que efectuan 
una tarea determinada que se realiza un cierto numero de veces en 
el programa de forma "rutinaria", pueden considerarse estas instrucciones 
como una subrutina, y hacer que el ordenador VAYA a efectuar esa 
tarea, mediante el comando GOSUB seguido del numero de linea en 
que comienza la subrutina. 

El final de dichas subrutinas, se marca tecleando la instruccion que^ 
hace que el ordenador VUELVA (RETURN) al punto en que se desvio. 
Es decir, cuando el ordenador encuentra la instruccion RETURN, volvera 
a la instruccion que va inmediatamente detras de aquella en que se 
produjo el desvio mediante el comando GOSUB. 

En el programa anterior, la instruccion plot 50*cos(a), 50*sin(a) se 

repetia cuatro veces. Esta instruccion puede ser considerada y separada 
como una subrutina, hacia la que se desvia el ordenador cada vez que 
se necesita usando la instruccion GOSUB. Observalo en el siguiente 
programa: 



360 



5 els 




10 


for 


a=l to 


15 


deg 




20 


orig 


in 196, 


30 


gosu 


b 120 


40 


orig 


in 442, 


Pagina 


F3.16 



282 



>82 



FUNDAMENTOS 



50 gosub 120 

60 origin 196, 116 

70 gosub 120 

80 origin 442, 116 

90 gosub 120 

100 next 

110 end 

120 plot 50*cos(a) , 50*sin<a) 

130 return 

run 



Observa tambien que en la li'nea 110 usamos la instruccion END; porque 
de lo contrario, el programa obviamente continuaria despues de la 
instruccion 100 y llevaria a cabo la 120, que solo se necesita cumplimentar 
cuando la subrutina sea citada mediante GOSUB. 

Para concluir esta seccion, ensaya con el siguiente programa que incorpora 
un monton de los comandos de programacion y de las palabras clave 
que a estas alturas ya debes comprender. Teclea: 

new 

0:ink 0,0 



new 

10 mode Osborder 6: paper 0:ii... „, , 

20 gosub 160:for x=l to 19: locate x, 3 

30 pen 15: print" " ;chr* (238) 



40 
50 
60 
70 
80 
90 



^ W 9UU 1UV< I Ul /\ — JL WW i J' lUUQbC A, U 

pen 15: print" " ;chr* (238) 
for t=l to 50:next t:sound 2, (x+100) 
next x:gisub 160:for b=3 to 22 
locate 20, b:pen 7:print chr*(252) 

rlcinncnh 1 fifllnovh h 



SONIDOS 

Los efectos sonoros son producidos por un altavoz incorporado dentro 
del propio ordenador. Si estas usando el modulador/alimentador MP1 
y un televisor domestico, sigue manteniendo en el minimo el control 
de volumen del televisor. 



Pagina F3. 17 



FUNDAMENTOS 



El nivel de sonido del ordenador, puede ajustarse usando el mando 

de volumen, marcado VOLUME en el costado derecho del ordenador. 

El sonido puede tambien enviarse hacia el enchufe de entrada de un 

sistema estereo, usando el enchufe de entrada/salida, marcado I/O 

en la parte izquierda del panel posterior del ordenador. Eso te permitiria 

escuchar el sonido generado por el ordenador a traves de los altavoces 

o auriculares de tu equipo de alta fidelidad. 

El comando SOUND, tiene 7 parametros para el SONIDO. Los primeros 
2 de ellos, deben usarse siempre, el resto es opcional. El comando 
se teclea en la forma: 

SONIDO estado del canal, periodo del tono, duracion, volumen, 
envolvente de volumen, envolvente de tono, periodo del ruido. 

En los ejemplos siguientes, teclearemos un 1 como estado del canal; 
en otras palabras, el numero de referenda. 

Periodo del Tono 

Consulta el Apendice VII y veras que la nota DO media, tiene un periodo 
del tono de 478. 

Teclea: 

new 

10 sound 1,478 

run 
Oiras una breve nota que es la "media c" y dura 0,2 segundos. 

Duracion 

Cuando no se especifica duracion del sonido generado, sonara durante 

0,2 segundos, la unidad de duracion es de 0,01 segundos. Para hacer 

que una nota dure 1 segundo, usariamos por lo tanto 100 en este parametro. 

Para que dure 2 segundos, usariamos 200, etc. Teclea: 

10 sound 1, 478,200 
run 

Y ahora oiras durante 2 segundos la nota media c. 

Volumen 

Este numero especifica el volumen con que arranca una nota. El numero 
debe estar en la gama a 7. Pero sin embargo, si se especifica un 
envolvente de volumen, la gama se amplia de a 15. Si no se utiliza 
en el comando ningun numero, se presupone k que es el valor prescrito 
para las omisiones. Teclea: 

10 sound 1,478,200*3 

Y observa el volumen de este sonido. Luego teclea lo mismo pero usando 
un numero de volumen mayor: 

10 sound 1,478,200,7 

Pagina F3.18 : 



FUNDAMENTOS 

Y comprobaras que es mucho mas alto que el anterior. 

Envolvente de Volumen 

El comando para el envolvente de volumen usa la palabra reservada 
env. Normalmente tiene 4 parametros: los ultimos 3 aparecen en cualquiera 
de las cinco secciones de envolvente que hay disponibles como maximo. 
Aqui' solamente usamos uno de ellos. Las explicaciones adicionales 
aparecen en el capitulo 6. 

env numero del envolvente, numero de pasos, amplitud (tamano) 
del paso, tiempo del paso. 

Numero del envolvente 

Es el numero dado a un determinado envolvente, de modo que pueda 
especificarse en el comando SOUND. La gama de numero de envolventes 
es de a 15. 

Numero de pasos 

Se usa en conjuncion con el tiempo del paso. Por ejemplo, puedes desear 
tener 10 pasos de 1 segundo cada uno. En tal caso, el numero de pasos 
es 10. La gama de valores posibles para los numeros de pasos es de 
a 127. 

Amplitud del paso 

Cada paso puede varia'r en amplitud desde un nivel hasta un nivel 
15 con respecto al paso precedente. Los 15 niveles de amplitud son 
los mismos que se emplean en el comando SOUND. Sin embargo, cada 
paso puede ajustarse desde -128 a +127 de manera que no solamente 
se puede variar la amplitud subiendola o bajandola en la forma obvia, 
sino que tambien puede variarse usando numeros mayores de 15 para 
obtener algunos efectos especiales y extranos. La gama de numeros 
empleada para las amplitudes del paso es de -128 a +127. 

Tiempo del paso 

Este numero especifica el tiempo transcurrido entre los pasos en unidades 
de 0,01 segundo (1/100 de segundo). La gama de numeros para el tiempo 
del paso es de a 255. Por lo tanto, el tiempo mas largo transcurrido 
entre los pasos es de 2,55 segundos. 

Para experimentar con la envolvente de volumen, teclea el siguiente 
programa: 

5 env 1, 10, 1, 100 

10 sound 1,284,1000,1,1 

run 



Pagina F3.19 



FUNDAMENTOS 



La li'nea 10 especifica un sonido con un periodo del tono de 284 (convenio 
internacional a) que dura 10 segundos y con un volumen de arranque 
de 1, y usando la envolvente de volumen numero 1; envolvente que 
esta definida en la li'nea 5 y consta de 10 pasos, aumentando la amplitud 
en 1 a cada paso, y con un tiempo del paso de 1 segundo (100x0,01 
segundos). 

Cambia la li'nea 5 segun las instrucciones que te presentamos ahora, 
y luego ejecuta el programa cada vez para oir el efecto obtenido al 
cambiar la envolvente de volumen. 



5 


env 


1, 100, 1, 10 


5 


env 


1, 100,2, 10 


5 


env 


1, 100,4, 10 


5 


env 


1,50,20,20 


5 


env 


1,50,2,20 


5 


env 


1,50, 15,30 



Y finalmente ensaya con esto: 
5 env 1,50,2, 10 

Observaras que la mitad del tiempo que dura el sonido, la amplitud 
permanece constante. Es debido a que el numero de pasos que estipulamos 
era 50, y el tiempo de cada paso era de 0,1 segundos. Por lo tanto, 
el tiempo durante el que la amplitud de la envolvente vario fue solo 
de 5 segundos; mientras que la duracion del sonido especificada en 
el comando SOUND de la li'nea 10 fue de 10 segundos. 

Experimenta por ti' mismo, para ver los tipos de sonido que puedes 
generar. 

Envolvente de Tono 

El comando para la envolvente de tono es ent. 

Tiene norrmalmente 4 parametros. LOs 4 parametros aparecen en cualquiera 
de las 5 secciones de envolvente que hay disponibles como maximo. 
Aqui' solamente estamos usando una de ellas. Las explicaciones completas 
apareceran en el capi'tulo 6. 

ent numero de envolvente, numero de pasos, periodo de tono del 
paso y tiempo del paso. 

Numero de envolvente 

Es el numero dado a la envolvente particular de forma que pueda 
especificarse en el comando SOUND. La gima de numeros de envolvente 
es de 1 a 15. 



Pagina F3.20 



FUNDAMENTOS 



Numero de pasos 

Se usa en conjuncion con el tiempo del paso. Por ejemplo, puedes desear 
tener 10 pasos de 1 segundo cada uno. La gama de numeros de paso 
es de a 239. 

Peribdo de Tono del Paso 

El peribdo del tono de cada paso puede variar entre -128 a +127. Los 
valores negativos aumentan la frecuencia de las notas (haciendo las 
notas mas agudas). El periodo mas breve del tono es 0. Eso debes 
recordarlo cuando calcules envolventes del tono. La gama completa 
de peribdos del tono se muestra en el Apendice VII. Los numeros para 
peribdos de tono del paso, debe estar en la gama de -128 a +127. 

Tiempo del Paso 

Este numero especifica el tiempo del paso en unidades de 0,01 segundo 
(1 centesima de segundo). La gama de numeros para el tiempo del 
paso es de a 255. Por lo tanto, el tiempo del paso mas largo es de 
2,55 segundos. 

Para experimentar con la envolvente del tono, teclea el siguiente programa 

5 ent 1, 100,2,2 

10 sound 1,284,200,15,0,1 

run 

La linea 10 especifica un sonido con un peribdo de tono de 28^ (convenio 
internacional a), que dura 2 segundos, con un volumen de arranque 
de 15 (el maximo), con una envolvente de volumen y con una envolvente 
de tono designada por el numero 1. 

La linea 5 es la envolvente de tono designada con el numero 1, y consta 
de 100 pasos, creciendo en 2 a cada paso el peribdo del tono (reduciendo 
la frecuencia del tono, cada 0,02 segundos, que es el tiempo del paso). 

Cambia ahora la linea 5 a los valores que te presentamos a continuacion, 
y luego ejecuta el programa cada vez para apreciar el efecto de cambiar 
la envolvente del tono: 

5 ent 1, 100,-2,2 
5 ent 1, 10,4,20 
5 ent 1, 10,-4,20 

Ahora sustituye el comando SOUND y la envolvente del tono, tecleando: 

5 ent 1,2, 17,70 

10 sound 1,142,140,15,0,1 

15 goto 5 

run 

Ejecutalo y luego pulsa la tecla ESC dos veces para "interrumpir" 
la ejecucion de este programa sin fin. 
— — Pagina F3.21 — 



FUNDAMENTOS 



Ahora puedes emplear los comandos de sonido, envolvente del volumen, 

y envolvente del tono, para generar diferentes sonidos. Comienza tecleando: 

new 

5 env 1, 100, 1,3 

10 ent 1, 100,5,3 

20 sound 1,284,300,1,1,1 

run 

Luego sustituye la li'nea 10 tecleando: 
10 ent 1, 100,-2,3 

Ahora sustituye todas las liheas, tecleando: 

5 env 1, 100,2,2 

10 ent 1, 100,-2,2 

20 sound 1,284,200,1,1,1 

run 

Y finalmente ensaya con las variaciones que se te ocurran a ti'. 



Ruido 

Se puede anadir ruido al final del comando SOUND. Se dispone de 

una gama de ruidos con numeros del 1 ai 31. Ensayalo, simplemente 

anadiendo el numero del ruido al final de los parametros del comando 

SOUND y usando todavfa el comando de envolvente. Sustituye las li'neas 

5 y 20, tecleando ahora: 

5 env 1, 100,3, 1 

10 sound 1,200,100,1,1,1,5 

run 

De nuevo, puedes ensayar algunos sonidos poco habituales, modificando 
la envolvente del volumen y el comando de sonido, y anadiendo o no 
el ruido. 




L_ Pagina F3.22 



CPC464: INTRODUCCION 



1. Arranque 



Para aquellos que os habeis saltado la introduction para principiantes, 
los detalles de instalacion, puesta en marcha y familiarization con 
el teclado, os advertimos que si encuentras confusa la terminologfa 
que usamos, es conveniente que repases rapidamente la section de 
introduction de los FUNDAMENTOS. 

Temas comentados en este capitulo: 

* Convenios de notation usados en esta Gufa de Usuario 

* Puesta en marcha 

* Familiarization con el teclado 

No importa el grado de experiencia que tengas en programacion y 
ordenadores, certiorate que sigues fielmente las instrucciones de puesta 
en marcha. Si simplemente has abierto el embalaje y no puedes esperar 
a comenzar adecuadamente, este capitulo te dira todo lo que necesitas 
saber para satisfacer tu curiosidad initial y pasar a sumergirte en 
las aplicaciones del BASIC. Esta section esta planteada para usuarios 
que ya tienen alguna familiaridad con los ordenadores. Los principiantes 
debieran comenzar con el capitulo de introduction de la section de 
FUNDAMENTOS. 



IMPORTANTE - DEBES leer este parrafo: 



Terminologfa 

Con el objeto de aclarar las referencias en el texto con respecto a 
las teclas del ordenador, asf como del texto que forma parte de los 
listados de programas, hemos adoptado los siguientes convenios, que 
usaremos a partir de ahora en esta Guia. 

ENTER: Teclas a las que no esta asociado un simbolo "visivo" en la 
pantalla, se muestran en esta forma, siempre y cuando no den lugar 
a confusion; en caso contrario se encierran entre corchetes "[]"• 

QWERTYuiop?"!: Teclas que si' corresponden con un simbolo "visivo" 
en pantalla, aparecen de esta forma, sin precisar si corresponden al 
simbolo superior o inferior que aparece marcado en la propia tecla. 

10 FOR N = 1 to 1000 : Texto que aparece en pantalla, 

o lo que los comandos que has de imponer mediante el teclado, se 
muestran en este estilo de letra, observa la diferencia entre el y 
la O mayuscula. 



Capftulo 1 Pagina 1 



CPC464: INTRODUCTION 



Se supone que terminas cada linea de instrucciones o de comandos 
pulsando siempre la tecla ENTER, para indicarle que VALE y pase 
a cumplimentar lo que le hayas dicho; por lo tanto, no la repetiremos 
en el listado en lo que queda de Guia, aunque antes si' lo hayamos 
hecho. 

Ademas, se supone que siempre ejecutaras cada programa ejemplo, 
despues de haberlo tecleado y usando el comando RUN. BASIC convierte 
todas las palabras claves impuestas por teclado en minusculas, a letras 
mayusculas cuando se lista el programa. Los ejemplos mostrados a 
partir de ahora, usaran mayusculas para las palabras clave, dado que 
asi' es como aparecen los programas al ser listados. Si tu tecleas usando 
letras minusculas, sera mas conveniente para detectar los errores de 
tecleado mas rapidamente, dado que las palabras clave mal deletreadas, 
seguiran mostrandose en minusculas cuando se liste el programa. 



1.1.1 ABRE LA CAJA DE LAS SORPRESAS 
El Monitor a Color 



IMPORTANTE 



Por favor, consulta las instrucciones de Puesta en Marcha 

detalladas al comienzo de esta Guia de Usuario, y que describe 

como conectar el cable de alimentacion 

de tu equipo a una clavija adecuada. 



Con el ordenador conectado correctamente, tal y como se muestra 
en la figura 1, enciende el monitor, y luego el ordenador usando el 
interruptor deslizante del costado derecho. 



Figura 1 



Monitor 




Conector del MONITOR 



Capftulo 1 Pagina 2- 



r 



CPC464: INTRODUCCION 



Despues de aproximadamente 30 segundos de "tiempo de calientamiento", 
aparecera en el monitor: 

Anstr«4 64K Hicrocomputer (vi) 

91984 Anstrad Consumer Electronics pic 
and Loconotive Software Lid. 

BASIC i.e 

Ready 



Cursor 

Este mensaje se conoce con varios nombres, tales como "Bienvenida", 
"Restauracion", "Despertador", "Mananero" o "Saludo", etc. y lo importante 
es que indica que el ordenador esta completamente RESTAURADO 
a sus condiciones iniciales -una condicion que ocurre siempre que se 
pone en marcha despues de haberlo apagado, y despues de imponer 
por teclado, una secuencia correcta de tres teclas especiales que se 
han pulsado simultaneamente. Es decir, pulsando consecutivamente 
CTRL, SHIFT y ESC, y manteniendo pulsada la anterior hasta que 
las tres estan pulsadas y luego soitandolas, se logra la restauracion 
del sistema. Ensayalo ahora, antes de teclear ninguna otra cosa. 

Ajusta el control de brillo, situado en el costado derecho del monitor. 
El color esta pref ijado en fabrica, asi' que si deseas cambiar el color 
de la pantalla (lo habitual es si'mbolos en oro sobre un fondo azul), 
debes hacerlo mediante las instrucciones programables pertinentes, 
para lo que tendras que saltar al capitulo "Lo primordial en Graficos" 
y al capitulo 8 sobre palabras reservadas en BASIC. Si no te importa 
que nos anticipemos un poco, aqui' hay un breve programa que te dara 
una de las mejores y mas legibles combinaciones de colores para meter 
textos, usando el modo de pantalla en que la resolucion es de 80 columnas 
por li'nea. 

Teclea: 

10 MODE 2 
20 INK 1,0 
30 INK 0, 13 
40 BORDER 13 

...que tambien podrias teclear como una sola li'nea de comandos ejecutada 
inmediatamente. 

Si el programa anterior no significa nada para tf, o no puedes ver si 
lo has tecleado correctamente, es senal de que necesitas repasar los 
FUNDAMENTOS PARA PRINCIPIANTES, seccion que encontraras al 
principio de esta Gui'a. 



Capitulo 1 Pagina 3 



CPC464: INTRODUCTION 



Comprobaras que la imagen con 80 columnas es con mucho, el modo 
mas provechoso para desarrollar programas -puede que te guste GUARDAR 
el breve programa anterior (cuando ya hayas lei'do totalmente el capi'tulo 
2) al principio de una cinta en bianco, para ahorrarte teclear cada 
vez que pones en marcha el ordenador. 

jPRECAUCION! Un brillo elevado en el monitor a color significa que 
debes ser cuidadoso para evitar los esfuerzos visuales cuando estas 
sentado muy cerca, o usar niveles de brillo que sean superiores a los 
elegidos por las condiciones luminosas ambientales. En el momento 
que sientas molestias en la vista, apaga y haz otra cosa, pero en primer 
lugar, evita siempre: 

1. Trabajar con suficiente luz ambiental para poder leer este manual 
con facilidad. Si estas leyendo este manual con el reflejo de la 
pantalla, es una de las situaciones que vigorosamente no recomendamos 

2. Usa el mi'nimo de brillo requerido para ver lo que estas haciendo 
comodamente. 

3. Sientate tan lejos de la pantalla como puedas. 

Una lampara de mesa situada a lo largo del monitor, ayudara a reducir 
el esfuerzo visual -siempre que este situada por detras de la parte 
frontal de la pantalla para evitar la reflexion. 



1.1.2 El Monitor de Fosforo Verde 

El monitor GT64 tiene tres controles por debajo de la parte frontal. 
Estan previstos para poder ajustar el brillo (BRIGHTNESS), el contraste 
(CONTRAST) (que es la diferencia entre las partes mas brillantes y 
las partes mas oscuras de la imagen) y el ajuste de sincronismo vertical 
(VHOLD), que permite al usuario enclavar la imagen e impedir su 
"despliegue" vertical. 

El mando VHOLD no requiere que lo manipules frecuentemente -y 
una vez que lo hayas colocado inicialmente, te puedes olvidar de el. 
El brillo y el contraste puedes ajustarlo de vez en cuando para adaptarlo 
a las condiciones luminosas de la habitacion donde estas usando el 
CPC464. 

Usando un monitor monocromo (una pantalla de un solo color que varia 
la intensidad de los caracteres mostrados para lograr el contraste entre 
los diferentes elementos de la imagen), el mensaje de "salutacion" 
sera el mismo que con el monitor a color (policromo), excepto en que 
el texto aparecera en un verde brillante sobre un fondo verde mate 
y mas tenue. 

Aunque el uso extremadamente excesivo de tu ordenador con el monitor 
GT64 puede llevarte a cansancio visual, la imagen generalmente MAS 
SUAVE del monitor monocromo, hace que sea mucho mas comodo trabajar 
con el durante un peri'odo largo. 



Capi'tulo 1 Pagina 4- 



CPC464: INTRODUCCION 



En particular, tendras la posibilidad de sacar el mejor partido del modo 
"80 columnas" (en que en cada li'nea horizontal de la pantalla puedes 
colocar 80 si'mbolos) dado que la definicion o resolucion (que indica 
la capacidad de mostrar un numero de diminutos elementos en la pantalla 
proximos uno a otro pero sin que aparezcan borrosos, sino que continuen 
siendo nitidos) de un monitor monocromo es intrinsecamente superior 
a cualquiera, aunque sea el mas caro, monitor poli'cromo. 

Ajusta el control de BRILLO para producir una imagen adecuadamente 
iluminada sin que las "MOT AS" que forman los caracteres mostrados 
en pantalla se vuelvan excesivamente borrosas. 

Para "implantar" el modo de 80 columnas, basta que teclees el siguiente 
programa en tu ordenador CPC464. Con ello se te ofrece una gama 
de colores a elegir: 

10 REM senalando format o consola 

20 FOR n=0 TO 26 

30 MODE 2 

40 INK l,n 

50 INK 0, <26-n> 

55 BORDER n 

60 LOCATE 15, 12: PRINT "Pulsa una tec la 

para cambiar el format o de la consola" 
70 a*=INKEY* 
80 IF a*="" GOTO 70 
90 NEXT 
100 GOTO 20 

Este ejemplo nos ilustra ademas un punto importante que concierne 
a la presentacion y estilo de este manual. Algunas lineas en los listados 
del programa sobrepasan el margen derecho establecido y las continuamos 
en la linea siguiente. Es obvio, pero importante, observar que no es 
preciso cuando teclees ese programa que incluyas los espacios en bianco 
adicionales que aparecen en el extremo final de cada renglon; simplemente 
los insertamos para "adornar" el listado y hacerlo mas "didactico". 
A medida que progreses, apreciaras otras muestras de las "habilidades 
del editor". 

Con el programa anterior no se ilustran todas las posibles combinaciones 
de la escala de grises (colores), pero si' que sacaras una buena idea 
de los que estan disponibles. Cuando encuentres una combinacion que 
te guste, deten el programa pulsando por dos veces la tecla de ESCAPE, 
(con ello provocaras ademas un mensaje de RUPTURA o "brecha", 
en que como veremos, aparece la palabra *Break*). 

A partir de ahora, la Guia hara muchas referencias a detalles especi'ficos 
de la opcion pertinente al monitor a color. 



Capftulo 1 Pagina 5 — ' 



CPC464: INTRODUCCION 



Programas que presentan efectos interesantes en colores y graficos, 
pueden aparecer casi sin poder ser apreciados en un monitor monocromo, 
aunque se ha procurado con gran cuidado producir una gama de colores 
que corresponde a niveles progresivos en la escala de grises (se describe 
mas ampliamenta en el capitulo 5). 

La ventaja de los monitores monocromos, radica en que producen una 
imagen menos crispante y fatigante y es muy conveniente al hacer 
el desarrollo del programa; pero es inevitable de vez en cuando que 
te sientas "picado por el agijon de la abejita computadora" y en esos 
casos hay poca esperanza de que evites lo inevitable: tener tambien 
la opcion de color. 



1.1.3 El TV Modulador/Alimentador MP1 

El MP1 es una unidad adicional que seguramente desearas comprar 
si habitualmente usas tu ordenador CPC464 con el monitor monocolor 
verde GT64. El MP1 te faculta para usar el ordenador con tu televisor 
domestico, y gozar por lo tanto de todas las enormes posibilidades 
que en el campo del color posee el ordenador CPC464. 



IMPORTANTE 



Consulta por favor, las instrucciones de Puesta en Marcha 

detalladas al principio de esta Gui'a de Usuario, que describe 
como conectar los cables de alimentacion de tu equipo 
a una clavija adecuada. 



Conector 5V DC 




TV Domestico 



Conector de antena 
Conector del MONITOR 




Figura 2: Conexiones para el MP1, ordenador y entrada de antena en 
tu TV. 



Capftulo 1 Pagina 6 



CPC464: INTRODUCCION 



El modulador/alimentador (MP1) debiera situarse en el costado derecho 
del ordenador y sobre una mesa apropiadamente cercana al televisor 
y al enchufe de suministro electrico. Como se muestra en la figura 
2 de la pagina anterior. 

Reduce ahora el control de volumen de tu televisor al mi'nimo -el CPC464 
tiene su propio altavoz interno, por lo que no usa el canal de sonido 
del televisor y reduciendo el volumen al minimo conseguiras que no 
moleste el fundido propio del televisor. Luego enciende tu televisor, 
y a continuacion el ordenador usando el interruptor deslizante, marcado 
POWER, en el costado derecho. El pequefio testigo luminoso rojo, situado 
aproximadamente en el centro del teclado, marcado ON, debera iluminarse 
para indicar que esta en marcha el ordenador; con lo que ya puedes 
pasar a sintonizar tu televisor y recibir la serial UHF procedente del 
ordenador. 

Si tienes un televisor con seleccion de canales por pulsadores, pulsa 
uno de ellos para elegir un canal de reserva o poco usado. Ajusta el 
control de sintonia del televisor de acuerdo con las instrucciones que 
haya dado el fabricante (la serial del ordenador esta aproximadamente 
en el canal 36 si tu televisor tiene un limbo incorporado), hasta que 
recibas una imagen igual a esta: 



Anstrad 64K Microcomputer <vl) 

;rad Consumer Electron , 

and Locomotive Software Li 



£1984 Am s trad Consumer Electronics. pic 



BASIC i.e 
Ready 

Sintoniza tu televisor exactamente hasta que veas la imagen mas nitida. 
La escritura aparecera en amarillo (oro) sobre un fondo azul fuerte, 
aunque variara de acuerdo con las caracteristicas individuales del TV. 

Si tu TV tiene un selector rotativo de programas, gira la perilla de 
sintonia hasta que aparezca la imagen anterior y permanezca 
perfectamente estable (como antes, corresponde aproximadamente 
al canal 36). 

Como la senal pasa a traves de las diversas etapas del proceso, siendo 
primeramente "modulada" y despues "demodulada", se produce un 
cierto deterioro en la senal de video. Los resultados no pueden por 
tanto ser tan buenos como los conseguidos mediante un monitor al 
que directamente se inyecta la senal de video, y tambien depende 
de la calidad de tu TV; por lo que puede suceder que en el modo de 
texto con 80 columnas (modo 2) los resultados logrados no sean perfectos, 
en cuyo caso, debieras usar el modo 1 para imponer textos que 
probablamente te resultara mas conveniente. 



-Capitulo 1 Pagina 7 



- CPC464: INTRODUCTION 



1.2 Primeros pasos 

Ahora que ya estas "conectado": el alimentador debiera estar enchufado, 
los terminales del cable de video enganchados ya sea en el monitor, 
ya sea en el modulador; y ya has encendido. Tu ordenador esta esperando 
que le mandes hacer algo. 

La imagen en pantalla de saludo o de "despertar" es el unico texto 
incorporado en la memoria del ordenador que puedes mostrar en pantalla 
sin que previamente tengas que imponer un comando o una instruccion 
mediante el teclado. Si ya estas familiarizado con el lenguaje de 
programacion BASIC, hay grandes probabilidades que inmediatamente 
hayas metido un breve programa para "empezar a conoceros". El BASIC 
AMSTRAD te sera familiar en muchos aspectos, y simplemente puedes 
continuar tu marcha; te mostraremos un breve programa que puedes 
teclear para mostrar todo el repertorio de caracteres incorporado en 
tu ordenador. Este REPERTORIO de si'mbolos, y que es el termino 
que usamos para describir todo el surtido completo de cifras, letras, 
signos, y otros caracteres no visivos en pantalla, pero que tambien 
pueden ponerse en accion mediante el teclado. 

Otros de los caracteres del repertorio no son directamente accesibles 
pulsando ninguna tecla, sino que solamente estan disponibles para ser 
mostrados usando la instruccion PRINT CHR$(<numero>) que posteriormente 
te describiremos. 

Esto es debido a que cada elemento almacenado en la memoria del 
ordenador, lo hace en unidades de informacion denominadas "bicos", 
entre otras cosas. Asi' por ejemplo, en ingles se dice "bytes" que por 
su significado primitivo "mordisco", les destaca el hecho de ser la 
cantidad de informacion manejada en cada operacion elemental. 
HABITUALMENTE, y como puedes observar en el Apendice II, un bico 
(byte) es simplemente cada una de las 256 combinaciones diferentes 
que pueden hacerse con una serie de OCHO elementos binarios (que 
puedes simbolizar como quieras: 1/0; alto/bajo; ping/pong; zig/zag). 
Pero como la gran mayoria de ordenadores tienen que usar como mi'nimo 
8 bits por cada caracter almacenado, otra de las facultades del CPC464 
es que aprovecha todas esas 256 posibles combinaciones, y no se queda 
simplemente satisfecho con las 96 combinaciones que la mayoria de 
los demas manejan, desperdiciando las otras 160 posibilidades. 

Esa gama standard de caracteres es pues un "subconjunto" del repertorio 
del CPC464. Por tanto, ese surtido de 96 caracteres, tambien conseguido 
en el CPC46^, es lo que se conoce a lo ancho del mundo informatico 
como el sistema "ASCII", siglas derivadas de: 

American Americano 
Standard Estandar 
Code for Codigo para 
Information Intercambio de 
Interchange Informacion 
Capitulo 1 Pagina 8 — — 



CPC464: INTRODUCCION 



...y es primordialmente un sistema que asegura que la informacion 
que se intercambia o transmite de un ordenador a otro es en una forma 
reconocible por ambos. Es quiza el unico aspecto de informatica que 
verdaderamente es universal, asi' que te aconsejamos concretamente 
que te familiarices con todos los aspectos del ASCII. El Apendice III 
no solo presenta el ASCII, sino que ademas te muestra los caracteres 
adicionales disponibles en el CPC464 y sus correspondientes codigos 
numericos, en notacion decimal, hexadecimal y binaria. 

Alguno de esos otros caracteres adicionales del repertorio del CPC464, 
tambien pueden mostrarse en pantalla usando una combinacion de la 
tecla de control, marcada CTRL en el teclado, y de otras teclas normales, 
-pero no te preocupes sobre esto todavia, hasta que no comprendas 
la funcion desempefiada por la tecla de control, porque puedes hacer 
mas dafio que beneficio si empiezas a pulsarlas al azar. 



1.2.2 

Para ver exactamente como todos estos caracteres aparecen en la 
pantalla, teclea el programa que te presentaremos en breve y asi' satisfaras 
tu curiosidad y empezaras a practicar con el CPC464. Este programa 
te ayudara a adquirir confianza tanto en la simplicidad de la programacion, 
como en el hecho de que cuando consigues el "saludo" al poner en 
marcha el ordenador, es muy probable que no encuentres ningun problema 
"circuital", y que el CPC464 esta simplemente esperando ser programado 
y nutrido con la informacion correcta para empezar a trabajar. 

(Si cometes un error cuando teclees ese programa, salta a la seccion 
1.2.7 para ver si puedes corregir el error sin necesidad de volver a 
meter el programa desde el principio). 

Cuando teclees el programa en tu ordenador, no importara si usas 
letras minusculas (abc), o letras mayusculas (ABC), conseguidas pulsando 
al mismo tiempo la tecla de turno o cambio, marcada SHIFT. El ordenador 
aceptara el programa en una y en otra forma. Observa que DEBES 
delimitar las palabras clave usando espacios en bianco u otros delimitadores 
(coma, punto y coma, etc., segun convenga) en las posiciones resenadas, 
dado que el BASIC AMSTRAD tambien permite que uses esas palabras 
reservadas (completamente enunciadas en el Apendice VIII) dentro 
de los nombres de las variables, cuando no provoca confusion. 

El aspecto "fisical" del teclado aparece en la figura k. Y hemos mencionado 
la palabra "fisical" dado que muchas de las teclas estan disponibles 
para que puedan ser definidas por el usuario de forma que la funcion 
que ejerzan o el si'mbolo o si'mbolos que presentan al ser pulsadas es 
dependiente de lo que el usuario haya definido. Ya lo describiremos 
mas ampliamente en las secciones subsiguientes. 



Capftulo 1 Pagina 9 



CPC464: INTRODUCCION 



tjwiTlWW]1juuuuuuuuiim^ 

m 



AMSTRAD 



fi4k COLOUR PERSONAL COMPUTER 



CPC464 031 



BOB 



00000000000000 

00000 0000000 
00000000000E 

]0 







000 
000 
000 
000 



Figura 4: El Teclado del CPC464 

Al pulsar la tecla ENTER se logra que el comando o instruccion que 
tecleas en el ordenador, y que hasta ahora ha sido simplemente "escuchado" 
por el y mostrado en la pantalla para comprobar que no te equivocas, 
tiene como efecto que interprete esa pulsacion final de ENTER como 
que ya VALE y que debe dejar de escuchar y pasar a cumplimentar 
lo que le has mandado: inmediatamente si es un comando, o simplemente 
almacenarlo en su memoria si es una instruccion (lo que sabe distinguir 
porque la instruccion va precedida del numero de li'nea correspondiente). 

La tecla ENTER se menciona frecuentemente como "RETURN" porque 

proviene de cuando se usaban mas las impresoras que las pantallas, 

e indicaba que el ordenador debi'a hacer un "retorno del carro" de impresion 

para comenzar en la li'nea siguiente, de forma similar a la palanca 

usada primitivamente en las maquinas de escribir. El termino ha continuado, 

y se ha incrustado para siempre dentro del repertorio ASCII, donde 

se simboliza ese caracter no visivo mediante la abreviatura "CR". 

Teclea ahora el programa que estamos comentando: 



10 FOR N = 32 TO 
20 PRINT CHR*(N) : 
30 NEXT N 
RUN 



255 



■Capitulo 1 Pagina 10- 



CPC464: INTRODUCCION 



1.2.3 

Observa lo que esta sucediendo en la pantalla: 

Anstrad 64K Nicroconputer (vl) 

©1984 Anstrad Consumer Electronics pic 
and Locomotive Software Ltd. 

BASIC i.e 

Readu 

10 FOR N = 32 to 2SS 

20 PRINT CHR*<N>; 

30 NEXT N 

run 

! "#*X** < >*+, - ./81234S6789 : ; <=>?8ABCDEFC 
HIJKLMNOPQRSTUUWXY2C\3t_ x abcdefghiJkl«no 



Ready 

Al ordenador le has pedido con ese programa que muestre todo el 
repertorio completo de caracteres que posee. Y si no te obedece, es 
que has cometido un error al teclear el programa, y te lo habra hecho 
notar por algun mensaje o de alguna forma; asf que pasa al parrafo 
1.2.7 y mira como puedes resolver el problema. 

Suponiendo que todo esta bien y que tienes el resultado requerido, 
examinemos lo que subyace en los caracteres mostrados -te ayudara 
a comprender exactamente como tu CPC464 se comunica mediante 
este repertorio de caracteres. 

El primer punto a observar es que no instruimos al ordenador para 
que EXPONGA el grupo "abcdefghijklmn... etc", lo que se le pide que 
haga es: 

PRINT CHR*(N) 

Donde N es solo una escritura taquigrafica conveniente para designar 
una variable; y la eleccion de esa letra N es completamente arbitraria. 
Sucede justamente que es la favorita de los matematicos en este tipo 
de aplicaciones. En informatica, una variable es simplemente un lugar 
de la memoria donde se almacena un dato que puede ser tratado dando 
simplemente el nombre asociado a ese lugar, en este caso la N. Y 
lo llamamos variable porque el dato alojado en ese lugar de la memoria 
puede ser variado de acuerdo con las instrucciones que demos en el 
programa. Tambien podemos guardar numerds como el 5, de una forma 
prefijada o constante. Tambien lo guarda en memoria, pero el ordenador 
no le asigna un lugar especial con un nombre especifico, y por tanto 
no puede ser variado con una instruccion. Por tanto, el numero 32 
o el 255 que aparece en el programa, se consideran como constantes. 

Capftulo 1 Pagina 11. 



CPC464: INTRODUCCION 



Y tanto las variables como las constantes son datos para el ordenador, 
aunque de distinta indole. Unos son numericos o NUMERALES, y a 
los otros como ya veremos, los llamamos LITERICOS, literales o 
alfanumericos. 

^Pero como sabe el ordenador la diferencia? 

Si hubieramos declarado la letra N como un caracter literal, habriamos 
tenido que teclear N encerrada entre comillas. 



Y el ordenador nos habri'a respondido con el mensaje de error sintactico 
porque no comprenderia la li'nea de instrucciones 10 que diria "N". 
Simplemente, usando N de esta manera, le hemos dicho al ordenador 
que N va a ser una variable numerica. La definicion de la instruccion 
FOR en el lenguaje BASIC, exige que esa palabra clave sea seguida 
por una variable numerica, de forma que el ordenador siempre supone 
que lo que va detras de la palabra FOR es simplemente eso. 

Tambien le hemos dicho al ordenador que N = 32 to 255. Y con eso 
le hemos declarado que la gama de valores de esa variable es en efecto 
una serie consecutiva de valores, empezando por 32 y terminando en 
255. 

Habiendo resenado asi' esta instruccion y declarado esta variable numerica, 
continuamos instruyendo al ordenador con lo que queremos que haga 
despues: y es lo que le reflejamos en la siguiente linear 

20 PRINT CHR*(N) ; 

Eso le dice al ordenador que debe convertir el valor que en ese momento 
tenga la variable numerica designada con N, en el caracter que corresponda 
a ese valor. La funcion CHR$(N) es la forma convenida con BASIC 
para que efectue esa tarea de conversion. Y habiendo examinado en 
su memoria el valor que corresponde a la variable numerica designada 
con la letra N, y calculado el caracter correspondiente, simplemente 
lo EXPONE (PRINT) en pantalla, con lo que ya ha cumplimentado esa 
instruccion. 

El punto y coma al final de la li'nea le indica al ordenador que no envie 
hacia la pantalla el caracter de "retorno de carro" ni "avance de li'nea", 
para que asi' el siguiente caracter que tenga que exponer no aparezca 
en la columna de la izquierda y en la siguiente li'nea de la pantalla, 
tal y como ocurriri'a automaticamente si no pusieramos el signo de 
punto y coma. Es decir, si no lo pusieramos, expondria los caracteres 
uno debajo de otro, formando una columna en la pantalla, en lugar 
de uno despues de otro, -formando una pila en la pantalla. 



■Capftulo 1 Pagina 12- 



CPC464: INTRODUCCION 



La siguiente instruccion le dice al ordenador que cuando haya efectuado 
esta tarea con el primer numero de la serie senalada en la instruccion 
FOR (el 32) debe volver a la linea donde esta resenada la instruccion 
FOR, y volver a hacer la misma tarea pero con OTRO valor (y podi'amos 
decir el SIGUIENTE) que corresponda a la variable N. Este proceso 
repetitivo se conoce como bucles, o una serie de "rondas" en que se 
efectua una determinada tarea en cada ronda. Y es uno de los mas 
fundamentales y frecuentes aspectos de la programacion y operacion 
con ordenadores. Este bucle que empieza con la instruccion FOR y 
termina con la instruccion NEXT, es uno de los rasgos fundamentales 
de la informatica, y aparece en todos los lenguajes de programacion 
sea en una forma o en otra. Ahorra tecleo manual con tareas reiterativas 
y rapidamente llegaras a usarlo en tu propia programacion. 

Cuando el numero de rondas efectuadas coincide con el li'mite de la 
serie declarada en la instruccion FOR, (el 255), la operacion cesa porque 
el bucle se ha terminado, y el ordenador examina la linea que va detras 
de aquella donde aparece la instruccion NEXT. En este caso, la que 
va detras de la linea 30, y como no hay ninguna, simplemente termina 
la ejecucion del programa, saca en pantalla el aviso Ready, para indicar 
que esta PREPARADO'para recibir nuevos comandos o instrucciones. 
Obviamente, puedes volver a decirle que repita la ejecucion del programa. 
El programa ya esta conservado en la memoria en forma segura, y 
permanecera alii' hasta que mandes al ordenador lo contrario; o hasta 
que quites la alimentacion, en cuyo caso, todos los datos variables 
y constantes, y los programas se habran perdido a no ser que los hayas 
GUARDADO en el cassette como medida de seguridad. 

Este programa ilustra ciaramente un punto fundamental en informatica: 
todo lo que el ordenador hace esta relacionado con numeros. El ordenador 
ha mostrado su repertorio de caracteres, con letras, cifras, signos 
de puntuacion y un surtido de si'mbolos especiales; y lo ha hecho, tomando 
como referenda para cada caracter mostrado un numero. Cuando pulsas 
la tecla marcada A, el teclado envi'a hacia las entranas del ordenador 
un numero asociado con esa A y de alii' sale hacia la pantalla ese numero 
(u otro) que los circuitos de pantalla interpretan y reconocen como 
correspondiente a la letra A y por tanto, muestran la A en pantalla. 
Por consiguiente, a cada dato le corresponde un codigo numerico que 
es el que realmente se manipula dentro del ordenador, y se convierte 
a informacion adecuada a las personas cuando es necesario recibir 
un dato de ellas (entrada por teclado) o mostrarles algun dato (salida 
por pantalla). 

Cada caracter tiene pues un numero inherentemente asociado, y esa 
es la lista que aparece en el Apendice III de este manual. 



-Capftulo 1 Pagina 13- 



CPC464: INTRODUCCION 



1.2.* 

Por favor, no te preocupes si no comprendes todos los tecnicismos 

y jerga usada en esta pagina. Es importante explicar precisa y 

completamente como el ordenador cumplimenta tus instrucciones y 

consigue los resultados que le pides, pero tambien es probable que 

los comprendas claramente si cuidadosamente examinas las explicaciones. 

Sin embargo, si encuentras esta seccion bastante complicada, saltatela 

y pasa a la seccion 1.2.5 (ya podras volver mas adelante). 

Por ejemplo, DECIMOS que el codigo -ese numero en estrecha 
correspondencia con cada caracter-, de la letra A es 65. y que el codigo 
de la a es 97. 

Pero a poco que pienses, llegaras a la conclusion de que solo es una 
forma de hablar. En realidad, dentro de la maquina no hay ni A ni 
97. No puede haberlo. Lo que si' hay es OCHO puntos en los circuitos 
electronicos internos, que examinados con un voltimetro uno a uno, 
nos irian diciendo: no hay voltios, sf hay voltios, no hay voltios, no 
hay voltios, no hay voltios, no hay voltios, sf hay voltios. Y comprenderas 
que hablar asi' es largo y con muchas posibilidades de confusion. Por 
lo tanto, abreviamos y consideramos a esos OCHO puntos como un 
solo sitio, (de ahi' el octeto, como tambien se llama al bico), y decimos 
que en ese punto hay un 97 cuando se ha pulsado la tecla marcada 
con A en el teclado. 

lY por que 97 y no tropecientos savanta y nove? Bien, es 97 y no 
otro numero porque todo esta basado en el SISTEMA DE NUMERACION 
EN BASE DOS, y los sistemas de numeracion ya en los tiempos de 
Pitagoras llevaban siglos de existencia, y no habia ordenadores. 

Claro que la notacion decimal que usamos en nuestra vida diaria es 
tan natural que pensar en otro sistema de numeracion puede parecer 
no solo complicado, sino hasta aberrante. Nos es natural porque tenemos 
10 dedos en las manos, pero los ordenadores no. Y en los circuitos 
electronicos y en los interruptores es mas facil detectar si hay tension 
o no. Por eso les es natural usar el sistema binario. Y no es complicado, 
como mas adelante veremos. Alguien simplemente lo comparo con 
la destreza necesaria para cambiar sus habitos de comida, usando el 
cuchillo y el tenedor en manos contrarias a las que estas acostumbrado. 
Y ademas, una vez comprendida esa notacion, muchi'simas de las cosas 
sobre ordenadores empiezan a encajar y empieza a ser patente la elegante 
estructura de los sistemas de numeracion usados internamente. 

Una vez que en las entranas del ordenador se ha traducido la pulsacion 
de la letra A detectada en el teclado, a su codigo correspondiente, 
y cuando le toca mostrarla en pantalla, consulta tambien sus circuitos 
internos para ver el tipo que tiene ese caracter. Y recuerda que el 
tipo ya desde los tiempos de Gutenberg, que invento la imprenta, es 
la manera de referirse a la forma especi'fica que tiene cada si'mbolo. 



Capitulo 1 Pagina 1*- 



CPC464: INTRODUCCION 



Pues bien, para definir ese tipo, en fabrica se preparan 64 puntos en 
los circuitos electronicos con valores inalterables de sf tension/no tension 
que permiten al ordenador mostrarlo en pantalla. Y otra vez, no solo 
para abreviar, esos 64 puntos consecutivos se dividen en OCHO grupos 
(octetos o bicos) con 8 puntos cada uno. 

Y ademas, los circuitos encargados de presentar la informacion en 
la pantalla, usan esas senales electricas para hacer OCHO trazos, con 
OCHO motas cada uno, y los coloca sucesivamente uno debajo de otro, 
formando una cuadri'cula diminuta, tal y como aparece en la figura 5: 



3S 



ipnri 
■ill 

i rm m \ 



SHFI 



Figura 5: Una cuadncula en bianco, con la a minuscula y con la A 
mayuscula. 

Por tanto, podemos asimilar la pantalla a un papel cuadriculado, en 

que cada caracter ocupa uno de los cuadritos; y ademas, cada uno 

de estos cuadritos vuelve a estar reticulado en forma de 8 filas de 

8 columnas cada una, y lograndose el tipo o forma del caracter iluminando 

selectivamente las 64 motas que resultan. Pero mejor es mirarla como 

8 trazos horizontales (que corresponden a 8 bicos) situados verticalmente 

uno debajo de otro. 

Si no encuentras el tipo de caracter que deseas dentro del repertorio 
de 256 que esta incrustado en la memoria del ordenador CPC464, tambien 
puedes definir el tipo que tiene y luego mostrarlo en pantalla, si usas 
las instrucciones disponibles en el BASIC AMSTRAD usando las palabras 
reservadas SYMBOL y SYMBOL AFTER, que estudiaremos en el capitulo 
8. 

Estos caracteres definidos por el usuario, usan una de las combinaciones 
posibles que pueden hacerse iluminando selectivamente o no las 64 
motas mencionadas. Y si analizaras cuantas combinaciones posibles 
puedes hacer de esa manera te resultaria una cantidad de combinaciones 
que sobrepasa los 18 trillones. Si', he dicho 18 trillones, es decir 18 
seguido de 18 ceros; y ademas puedes agrupar varios de esos tipos 
para que aparezcan en pantalla ocupando cuadritos contiguos y formar 
figuras mas complejas, por lo que la cantidad de caracteres y figuras 
definidas por el usuario esta unicamente limitada por tu capacidad 
de imaginacion y por tu tiempo. 



-Capftulo 1 Pagina 15- 



CPC464: INTRODUCTION 



1.2.5 Volviendo al programa 

El resultado del primer programa que has tecleado no tiene muy buena 
apariencia. Todavia quedan restos del mensaje de salutacion en la parte 
superior de la pantalla. Tendri'a mejor presentacion si dejaramos la 
pantalla en limpio antes de comenzar a exponer otras cosas. Anadiremos 
una linea en el programa para que ar regie esto. 

Teclea lo que viene a continuacion en la linea donde esta situado el 
cursor (que ya sabes, es ese pequeno rectangulo solido e iluminado 
inmediatamente debajo y a la izquierda del aviso Ready, y si no sabes 
cual es, no se que estas haciendo leyendo esto antes de los Fundamentos!). 

5 CLS 
RUN 

Observa como la pantalla queda completamente en bianco antes de 
que el ordenador empiece a escribir el repertorio de caracteres a partir 
de la esquina superior izquierda. 

Esto demuestra tambien otro aspecto de los lenguajes de programacion, 
y es que no importa en que orden teclees tus instrucciones ni que tampoco 
necesitas realmente listar el programa para anadirle una instruccion mas. 
El ordenador siempre ordena (y por eso se llama ordenador) las instrucciones 
de acuerdo con un orden ascendente de numeros de linea, antes de 
que comience a ejecutar el programa. Compruebalo listando el programa 
y viendo que la ultima tecleada ya esta en el sitio que le corresponde. 



1.2.6 LISTANDO 

Puedes comprobar facilmente cual es el programa que el ordenador 
tiene almacenado en su memoria, pidiendole que lo liste. Teclea: 

LIST 

y el resultado en la pantalla sera: 

5 CLS 

10 FOR N = 32 TO 255 

20 PRINT CHR*(N) ; 

30 NEXT N 

Ready 

Este programa permanecera en la memoria del CPC464 hasta que hagas 
algo de lo siguiente. 



* 
* 



Apagar el ordenador 

Restaurar las condiciones iniciales, pulsando CTRL, SHIFT y ESC 
sucesivamente, y manteniendo pulsada cada una hasta que sueltes 
las tres simultaneamente. 
* Cargues otro programa a partir del cassette, o lo cargues y ejecutes 
mediante RUN. 

.Capitulol Pagina 16 



CPC464: INTRODUCTION 



* Teclees el comando NEW que pone a cero todas las variables y 

vacia la memoria que contiene el programa, sin restaurar los valores 
iniciales del modo de pantalla ni de los colores. 

Vamos ahora a preparar una de las teclas funcionales para que en cuanto 
se pulse, ella sola efectue automaticamente la misma tarea que si 
hubieramos tecleado ENTER CLSsLIST ENTER , porque con esa 
facilidad aceleramos el desarrollo de los programas enormemente. 
Para hacerlo, teclea: 
KEY 138, CHR*(13)+"CLS:LIST"+CHR*<13) 

Y ahora pulsas la tecla con el punto decimal situado en el teclado 
numerico separado, que es el que corresponde a la TECLA (KEY) con 
codigo 138. 

Hasta 32 teclas pueden pre-programarse de esta manera, y puedes 
elegir cualquiera de las del teclado para "redefinir" el valor que les 
corresponde, en caso de que quieras usar el teclado numerico separado 
para su proposito original. Consulta la descripcion del comando KEY 
en el capftulo 8. 

Si el tuyo es un programa largo, puedes definir esa tecla como sigue: 
KEY 138, CHR*(13)+"CLS!LIST" 

con lo que al pulsarla, te permitira teclear a continuacion una gama 
de numeros de li'nea que desees; o simplemente pulsandola dos veces 
sucesivas te presentara el listado complete 

Cuando estas haciendo experimentos con los colores, es posible que 
te veas perdido con una combinacion de colores donde no es posible 
ver lo que aparece en pantalla porque la tinta del papel y de la pluma 
es la misma. Para ello puedes pre-programar otra tecla: 

KEY 139, CHR* (13) +"mode2: ink 1, 0: inkO, 9"+chr* ( 13) 

con lo que solo tienes que pulsar la mas pequefia de las dos teclas 
ENTER (la que esta en el teclado numerico separado) para que cuando 
te encuentres en la situacion mencionada, vuelvas a la situacion base 
con una combinacion de colores visibles en pantalla (no perderas el 
programa en memoria). 

Las teclas definidas por el usuario son restauradas siempre que se 
restauran las condiciones iniciales de la maquina, dado que tienen que 
estar disponibles para las instrucciones de los programas; por lo tanto, 
una vez que hayas pre-programado tus favoritas, escribelas en un programa 
y guardalas en la cinta para poder recuperarlas facilmente. 



■Capftulo 1 Pagina 17- 



CPC464: INTRODUCCION 



1.2.7 Lo primordial deeditar 

Inevitablemente cometeras equivocaciones al teclear los programas. 
Bienvenida a esta seccion a todos los que han saitado aqui' desde la 
seccion 1.2.2. 

En el CPC464 se ha intentado hacer la correccion de esas equivocaciones 
tan simple como es posible, y al mismo tiempo evitando los problemas 
de volver a escribir accidentalmente caracteres que no querias cambiar. 

El grupo de teclas que controla el movimiento del cursor (ese pequeno 
rectangulo solido que define donde va a aparecer el siguiente caracter 
que teclees) proveen medios para dirigir la atencion del ordenador 
a aquella parte del texto que hay en pantalla que desees alterar. 

Al cometer un error en una linea numerada, v.g.: 
10 FOR N - 332 TO 255 
dispones de varias opciones: 

1. Puedes pulsar ENTER y volver a teclear toda la linea. La linea 
incorrecta sera borrada de la memoria y sustituida por la linea 
que teclees usando ese mismo numero de linea. 

2. Puedes pulsar la tecla de retroceso del cursor y desplazarlo hasta 
que se situe encima del si'mbolo incorrecto. 

10 FOR N = 3g2 TO 255 

Observa que el caracter situado en la misma posicion que el cursor 
aparece en video inverse En otras palabras, el caracter que normalmente 
tiene el mismo color que el cursor, adopta ahora el mismo color que 
el fondo (el papel) de manera que se transparente a traves del cursor 
que esta situado precisamente encima de el. 

Pulsa ahora la tecla de BORRAR, marcada CLR, y el caracter situado 
en la misma posicion del cursor desaparecera, y los situados a la derecha 
se moveran para que no queden huecos: 

10 FOR N = 32 TO 255 

Pulsa otra vez ENTER, y esta linea ya corregida, sera la que el ordenador 
recuerde. El cursor no tienes porque llevarlo hasta el extremo de la 
linea, porque el ordenador recoge toda la linea, sin tener en cuenta 
la posicion del cursor en ese momento. 

3. Tambien puedes hacer que el cursor se situe en el caracter 
inmediatamente a la derecha del que deseas borrar: 

10 FOR N = 33@ TO 255 



Capitulo 1 Pagina 18- 



CPC464: INTRODUCCION 



Ahora pulsa la tecla de QUITAR (marcada DEL) con lo que desaparecera 
el caracter situado inmediatamente a la izquierda del cursor, al mismo 
tiempo que se desplazan tanto el cursor como el resto de caracteres 
a la derecha sin que se vea afectado el situado precisamente en la 
posicion del cursor, solo el de la izquierda. 

Pulsa ENTER y la lfnea quedara almacenada en la memoria como antes. 
10 FOR N = 32 TO 255 



1.2.8 Considerandos 

Los metodos anteriores son buenos cuando detectas el error antes de 
que llegues a terminar la lfnea pulsando ENTER. La mayor ia de los 
errores, sin embargo, permanecen inadvertidos en ese momento y solo 
salen a la luz cuando intentas ejecutar el programa, momento en que 
el ordenador te responde con un mensaje de error. (Apendice VIII). 

Unas cuantas clases de errores provocaran que el ordenador exponga 
la linea defectuosa, con el cursor de edicion situado en la primera 
columna (extremo izquierdo del papel). Si ese es el caso, puedes utilizar 
directamente los procedimientos mencionados anteriormente, como 
si hubieras detectado el error antes de concluir esa linea del programa 
pulsando ENTER. 

Si al producirse el error, el ordenador no te muestra la linea con la 
equivocacion, sino simplemente te resefia el numero de linea, tendras 
que listar el programa para examinar esa linea y poder corregir el 
problema. 



1.2.9 Editando con el Cursor de Copiar 

Primero lista el programa. (Continuamos suponiendo que estas trabajando 
con el programa breve de ensayo que estamos comentando, ya que 
el listado cabe en un solo pantallazo). 

5 CLS 

10 FOR N = 32 TO 255 
20 PRINT CHRS(N) ; 
30 NEXT N 

El error esta en la linea 20, hay una S en lugar del signo $, que indica 
una funcion literal (el $ obliga al ordenador a considerar que los caracteres 
deben tomarse LITERALMENTE al pie de la letra, y que no puede 
hacer operaciones de indole cuantitativa con ellos). Puedes volver a 
teclear la linea 20 desde el principio y volverla a meter, o bien puedes 
usar el llamado Editor de plana (o de pantalla, para distinguirlo del 
caso anterior en que decimos Editor de lfnea) en la forma siguiente: 
Capftulo 1 Pagina 19 — ' 



CPC464: INTRODUCCION 



Manten presionada la tecla SHIFT (cualquiera de las dos que hay en 
el teclado) y pulsa la tecla que hace subir al cursor, marcada ( + ). 

Puedes bien ir pulsando repetidamente para que suba una posicion a 
cada pulsacion, o puedes mantenerlo pulsado el tiempo suficiente como 
para que intervenga la repeticion automatica disponible en tu ordenador. 
En el instante en que levantes tu dedo de la tecla, se detendra el cursor; 
y con un poco de practica, pronto te familiarizaras con estos efectos. 
Si te has pasado, puedes volver con la tecla que baja el cursor, marcada 
(i) al mismo tiempo que como antes, mantienes presionada la tecla 
SHIFT. 

De esta manera, se provoca que aparezca el "CURSOR DE COPIAR" 
que es distinto del cursor principal aunque tengan la misma forma, 
y que se vaya desplazando hasta alcanzar la linea que deseas modificar. 
Ahora debes situarlo en el primer caracter de la linea a corregir. 

5 CLS 

10 FOR N = 32 TO 255 

@0 PRINT CHR*(N) ; 

30 NEXT N 

Ready 



Si intentaras llevar el cursor principal a esa linea que quieres corregir, 
o sea, usaras las teclas de desplazamiento del cursor, sin mantener 
simultaneamente pulsada la tecla SHIFT, el ordenador no lo aceptari'a 
como una accion valida, dado que unicamente los caracteres tecleados 
directamente y detras del cursor principal son los que pueden formar 
parte de instrucciones y comandos aceptables por el ordenador. 

Si comenzaras asi' y hasta reescribieras parte de la linea, podrias facilmente 
escaparte del enredo en que te has metido, pulsando la tecla ESC ANTES 
de pulsar cualquiera de las teclas ENTER o de usar alguna de las teclas 
funcionales que contenga CHR$(13). Si accidentalmente tecleas el 
comando NEW y lo concluyes pulsando ENTER, habras perdido para 
siempre todo tu programa. Asi' que debes ser cuidadoso para ahorrarte 
problemas. 

Una vez que has comenzado a teclear una li'nea, si intentas salirte 
de ella sin pulsar previamente ENTER, el ordenador emitira un pitido 
en cuanto llegues a un li'mite ilegal. En cuanto te saigas del problema 
pulsando ENTER, no se habra perdido nada del programa, a no ser 
que hayas tecleado un numero de li'nea que sea valido al principio de 
todo, en cuyo caso la li'nea, si existe, cuyo numero coincida con el 
tecleado, sera "reescrita" como resultado de esa operacion, y tendras 
que examinarla para ver como tienes que corregirla. 



Capitulo 1 Pagina 20- 



CPC464: INTRODUCCION 



Cuando hayas situado el cursor de copiar correctamente, sigue repicando 
con la tecla de COPIAR, marcada COPY hasta que dicho cursor llegue 
a la posicion donde quieres hacer un cambio. (Cuando te acostumbres 
a la velocidad del cursor de copiar, seras capaz de mantener pulsada 
la tecla COPY el tiempo suficiente como para situarlo certeramente 
en una sola tacada). 

5 CLS 

10 FOR N = 32 TO 255 

20 PRINT CHR0(N> ; 

30 NEXT N 

Ready 

20 PRINT CHRB 

Ahora suelta la tecla COPY y pulsa la marcada con el signo $, que 
aparecera debajo en la linea que esta escribiendose con el cursor 
PRINCIPAL, que por supuesto se desplazara una posicion a la derecha 
como siempre. 

20 PRINT CHR*« 

Sin embargo, el cursor que COPIA tiene que ser desplazado para que 
se salte esa S erronea, y para ello manten pulsada la tecla SHIFT al mismo 
tiempo que pulsas una vez la tecla de avance de cursor. Con ello, el 
cursor de copia descansara sobre el parentesis de apertura. Ahora sueltas 
la tecla SHIFT y mantienes pulsada la tecla COPY hasta que llegue al 
final de esa linea de instrucciones; en ese momento pulsaras ENTER para 
indicar que has concluido la operacion, y la linea ya corregida tal y como 
aparece en la parte inferior de la pantalla, sustituye a la linea incorrecta 
que aparece en el listado. 

Puedes combinar todos estos metodos simplemente copiando enteramente 
la linea del programa defectuosa, y antes de concluir la operacion pulsando 
ENTER, pasar a la EDICION DE LINEA, usando las posibilidades asociadas 
al cursor principal tales como directamente las teclas de desplazamiento 
del cursor y las teclas de borrado, (CLR) y quitado (DEL) de caracteres. 
Para ello, manteniendo pulsada la tecla CTRL, pulsas la tecla de avance 
de cursor o de retroceso de cursor, con lo que llevaras de un solo golpe 
el cursor al extremo derecho o al extremo izquierdo de la linea que se 
esta editando. 

Practica y veras que es mas facil no solo a la hora de manejarlo en la 
practica, sino tambien mucho mas facil de lo que parece cuando se esta 
explicando en un texto. 

Finalmente, tambien puedes pasar a la edicion (recuerda que es palabra 
aprovechada para hablar de correccion) tecleando: 

EDIT 20 

El ordenador respondera, mostrandote dicha linea 20 en la forma: 
gO PRINT CHR*(N) ; 
Capitulo 1 Pagina 21 — ■ 



CPC464: INTRODUCCION 



Ahora puedes usar directamente las teclas de cursor junto con las teclas 
CLR y DEL, tal y como te hemos comentado, y cuando estes satisfecho 
con el resultado simplemente pulsa ENTER para indicar que ya VALE.^ 
Si te metes en algun li'o con la edicion, pulsa ESC y lista la instruccion 
de nuevo. La linea que se estaba editando cuando has pulsado ESC no 
se ha visto alterada. 

Ahora lista una vez mas, y veras aparecer la version corregida del 
programa, y si no lo esta, pues vuelve a ensayarlo otra vez. 

Hasta ahora, solamente hemos comenzado a explorar el funcionamiento 
normal del CPC464. Vamos a echar una mirada a los otros dos modos. 
Teclea: 

MODE 
RUN 

Observa que primero se limpia la pantalla, y luego el programa muestra 
el repertorio de caracteres, pero con solo 20 en cada renglon de pantalla: 



Sfc * < >-**--•- - — - 

= i < = > ■?"<* " — 

— QRSTUUMX 




Para volver al modo original y normal, teclea: 

MODE 1 
RUN 

Y ya hemos regresado al principio. Para observar la imagen en el modo 
de 80 columnas, teclea: 

MODE 2 
RUN 



■"«■/*' <>*♦,-. /0ia34S6789:;<:>?»ftBC»EFGHIJiaJ«0PfiRSTU»ayZ[\]t x abcdefgMJklNM 

Reaay 



itf8Mt*H*iM*« i m» 



Capftulo 1 Pagina 22- 



CPC464: INTRODUCCION 



Ya hemos comenzado a trabajar, y ya debieras haber satisfecho parte 
de tu curiosidad inicial. Los usuarios avanzados ya estaran -me lo imagino- 
preparandose para convertir sus programas favoritos, en versiones que 
puedan ejecutar con este potente dialecto de BASIC. Los usuarios menos 
familiarizados con el BASIC deben proseguir a traves de las secciones 
"primordiales" para conseguir una panoramica sobre las facetas del BASIC 
que son especfticas en esta maquina. 



■ Capftulo 1 Pagina 23- 



CASSETTE (Datacorder) 



2. Cassette (Datacorder) 

Manipulando el sistema de almacenamiento en cinta. 
Temas tratados en este capftulo: 

* Similitudes y diferencias entre los cassettes de voz y de 
datos. 

* Cargando programas grabados en cinta cassette 
- la cinta de Bienvenida 

* Las opciones de velocidad de transferencia de datos 

* Guardando programas en cintas cassettes 

* Errores 

La memoria del CPC464 solo es capaz de conservar la informacion 
mientras se suministre energia electrica al ordenador. En la terminologia 
informatica, se dice que la memoria es un medio de almecenamiento 
"volatil" a causa de su poca retentividad. Si quieres conservar los 
programas y los datos cuando se interrumpe el suministro de energia 
(y alguna vez tendras que apagar el ordenador) deben ser grabados en 
la cinta magnetica contenida en la cassette, o en otro medio de 
almacenamiento no volatil como los diskettes. 



2.1 Controles del Cassette 

En la parte derecha del teclado del ordenador, encontraras un equipo 
cassette, identificado comercialmente como DATACORDER, y que te 
presentamos en la figura 2.1. La mecanica de esta DUCTORA de cinta 
cassette es esencialmente la misma que la de los equipos de audio para 
la grabacion y reproduccion de sonidos; excepto en que la electronica 
que controla los mecanismos de arrastre, grabacion, etc. esta 
especfficamente optimizada para usar el cassette como medio de 
almacenamiento de informacion "digital". 




Figura 2.1: La forma correcta de insertar el cassette. 
— Capftulo 2 Pagina 1 



CASSETTE (Datacorder) 



Igualmente, la operacion de la fila de teclas situada en la parte superior 
delantera del cassette es igual que para la mayoria de los equipos de 
audio-cassette: 



































• 
REC 




PLAY 




REW 




F. F. 




STOP 
EJECT 




PAUSE 





































Figura 2.2: Los controles del cassette Datacorder CPC464. 

Observa que todas estas teclas de control requieren ser presionadas (no 
podemos decir pulsadas) de forma mas firme que las teclas empleadas 
para imponer informacion en el ordenador. 

REC = Opera simultaneamente con PLAY para grabar datos cuando 
exigimos al ordenador que asi' lo haga. No puede actuar a no ser que 
se haya metido en el cassette una cinta cuya lengueta de proteccion 
ante grabacion (figura 2.2) y se haya bajado la tapa del cassette. 

Para que efectue su labor, debes oprimir la tecla REC y mientras la 
mantienes presionada, oprimir la tecla PLAY. El ordenador comenzara 
a transferir datos de la memoria al cassette cuando cumplimente la 
instruccion pertinente, o cuando ejecute el comando SAVE impuesto 
directamente por teclado. 

PLAY = LECTA informacion de la cinta (y "lectar" es un aumentativo 
de leer) para trasvasarla a la memoria del ordenador. Puedes usar el 
comando LOAD simplemente para cargar en la memoria del ordenador 
la informacion extrafda de la cinta, o el comando RUN para que ademas 
de cargarlo lo ejecute inmediatamente. Ambos puedes darlos como 
instrucciones en un programa, o como comandos directos por teclado. 

Ambas teclas REC y PLAY se reponen automaticamente cuando el 
mecanismo de arrastre de la cinta detecta el final del carrete. 

REW = Rebobina la cinta, pasandola del carrete izquierdo al carrete 
derecho. No hay conclusion mecanica de esta funcion al llegar al extremo 
de la cinta, por lo que no debes dejar el cassette REBOBINANDO (REWIND) 
si no quieres que el motor de arrastre se sobrecaliente. 

[STOP/EJECT] = PARA cualquier operacion que se este efectuando en 
el cassette, reponiendo las teclas a su posicion normal. Si se pulsa por 
segunda vez esta tecla, ALZA la tapa del cassette para que puedas sacar 
la cinta o meter otra. La cinta no puede sacarse hasta que haya cesado 
el movimiento de arrastre. 



Capitulo 2 Pagina 2 



CASSETTE (Datacorder) 



PAUSE = Apretando esta tecla consigues una PAUSA en la operacion 
de la ductora de cinta, sin alterar el modo de f uncionamiento en cjue 
este. No debes usarla cuando el ordenador esta pasando informacion desde 
o hasta el cassette, ya que provocarias un error. Todas las pausas 
necesarias durante la grabacion o la LECTACION, son manejadas por 
los programas propios del CPC464, por lo que estas pausas conseguidas 
mecanicamente no son empleadas frecuentemente. 



2.2 Proteccion ante escritura (figura 2.3) 




LENGUETAS DE PROTECCION 
ANTE ESCRITURA 



Con el fin de impedir que se borre accidentalmente la informacion que 
guardas en una cinta cassette, se dispone de unas lengiietas de proteccion. 
Estas lengiietas se pueden quitar facilmente con unos pequenos alicates, 
para que no se pueda apretar la tecla REC, con lo que esa cinta esta 
protegida ante escritura. 

Esta faceta de proteccion se aplica separadamente a CADA CARA de 
la cinta, de manera que para proteger ambas caras de la cinta, debes 
quitar las dos lengiietas. Si a continuacion inconscientemente, deseas 
hacer que vuelva a ser posible grabar en esa cinta que esta protegida 
frente a escritura, simplemente te basta cubrir el hueco resultante al 
quitar la lengiieta con un trozo de cinta adhesiva. 



2.3 Cargando las cintas 

La figura 2.1 muestra la manera correcta de meter una cinta cassette 
en la ductora de cinta, usando la que se suministra con el CPC464. 

La cinta debe estar completamente rebobinada (pasandola del carrete 
izquierdo totalmente hasta el carrete derecho, y si no lo esta, presiona 
la tecla de rebobinado hasta que el motor se detenga en el extremo 
delantero de la cinta). Si accidentalmente se ha salido la cinta por la 
abertura frontal de su cajita, debes tensarla previamente y dejarla 
bien bobinada antes de insertarla en el equipo cassette, o la cinta y la 
informacion que contiene puede estropearse. 



Capftulo 2 Pagina 3- 



CASSETTE (Datacorder) 



Observa por favor, que mientras que el mal uso de las cintas cassettes 
en los sistemas de audio simplemente lleva a que se escuchen mal por 
los dafios sufridos en la superficie magnetica de la cinta, ese mismo 
tratamiento aplicado a unas cintas informaticas, no es posible si quieres 
que funcionen con la suficiente fiabilidad. 

Por ejemplo, cuando danas la cinta porque atrapas un trozo suelto con 
la tapa del cassette, etc., y aunque compruebes que todavia puedes cargar 
y guardar programas en ella, lo que debes hacer inmediatamente es volver 
a guardar esa informacion en una cinta intacta y sin dafios, en cuanto 
logres tener en la memoria del CPC464 un programa, y luego desechar 
esa cinta danada antes de que te entren tentaciones de volver a usarla 
y en el momento mas inoportuno te de problemas. 



2A La cinta de Bienvenida 

Con el CPC464 se suministra una cinta cassette con unos cuantos 
programas de demostracion sobre las posibilidades sonoras y graficas 
del ordenador y de los programas RESIDENTES en el mismo: el interprete 
del BASIC AMSTRAD y el llamado Sistema Operativo de la Maquina (MOS). 

Parte de la funcion del conjunto de programas que es incorporado en 
fabrica dentro del ordenador y ya reside en su memoria permanentemente, 
denominado sistema operativo, es la de gestionar precisamente todas 
las operaciones con el cassette, incluyendo una serie de comandos que 
permiten leer y escribir datos y programas en la cinta. Los comandos 
mas frecuentes son el de CARGA en memoria (LOAD), cargar y 
EJECUTAR el programa (RUN), y GUARDAR un programa en cinta 
(SAVE). 

Para hacer la operativa del ordenador lo mas simple posible, el CPC464 
incluye ciertas funciones especiales que simplifican la manipulacion de 
las teclas hasta que adquiere la suficiente practica. Si ya has puesto 
en marcha el ordenador, y estas viendo el mensaje de "salutacion" con 
el aviso: 

Ready 

que te indica que esta PREPARADO para que le des alguna orden por 
teclado, puedes meter la cinta de Bienvenida tal y como te mostramos 
en la figura 2.1, "arredrar" el contador del cassette pulsando el oequeno 
boton situado a la derecha de la ventanita donde se muestra el nilmero 
de vueltas, y luego pulsar la tecla de control, marcada CTRL, y mientras 
la mantienes apretada, pulsar la pequena tecla ENTER en la esquina 
inferior derecha del teclado exclusivamente numerico. Inmediatamente 
el ordenador mostrara en pantalla el mensaje: 

RUN" 

Press PLAY then any key: 



Capftulo 2 Pagina 4- 



CASSETTE (Datacorder) 



Que obviamente te indica que en cuanto aprietes PLAY y luego cualquier 
tecla, empezara a ejecutar el programa grabado en la cinta. 

Para tu informacion, te puedo hacer notar que este es otro de los ejemplos 
en que con un "toque" simultaneo de dos teclas, conseguimos enviar hacia 
el interior del ordenador un comando completo; como ya comentamos 
brevemente al hablar del comando TECLA en el capitulo 1. Observa que 
al tocar una tecla conjuntamente con otra, como SHIFT o CTRL, 
cambiamos el significado de esa tecla. Es una manera de escribir 
TAQUIgraficamente, con lo que una vez acostumbrados, se consigue 
acelerar enormemente la operacion en el ordenador y el desarrollo de 
los programas. Seguiremos comentandolo a lo largo del manual, pero el 
efecto asf conseguido es el mismo que si hubieras tecleado el comando 
RUN" y luego pulsado ENTER, y lo logras mas facilmente con el toque 
simultaneo de dos teclas. 

En la mayoria de las ocasiones, las dos teclas ENTER llevan a cabo la 
misma funcion, pero hay circunstancias en que la funcion desempenada 
por la mas pequena de esas dos teclas, puede ser alterada (redefinida) 
para conseguir efectos distintos. 

La tecla de la ductora de cinta marcada PLAY es la que te pide el 
ordenador que pulses, y debes hacerlo hasta que quede trabada en su 
posicion mas baja. La parte del mensaje en que te pide pulsar cualquier 
tecla, es una frase comunmente usada por los programadores y que pueden 
confundir al principiante. Se usa para simplificar las operaciones de manera 
que el ordenador pueda proseguir con el programa en cuanto el operador 
haya efectuado la operacion que se le pide. 

Pero debe interpretarse siempre que se puede pulsar cualquier tecla 
normal, es decir, distinta de las marcadas SHIFT, [CAPS LOCK], CTRL 
y ESC, (y por supuesto, cualquiera de las teclas del panel de la ductora 
de cinta) pero inevitablemente todos los fabricantes de ordenadores tienen 
que hacer ciertas hipotesis con el fin de disminuir el espacio ocupado 
en memoria y hacer mas simple la operacion. Por lo tanto, siempre que 
aparezca la frase "Press any key" en esta Gui'a de Usuario, o en los 
programas suministrados por AMSOFT y otros vendedores, debe dar por 
supuesto que las excepciones mencionadas continuan aplicandose. 

Observaras ademas que cualquiera que sea la tecla que pulses, no aparece 
en pantalla el si'mbolo correspondiente, y que lo que se logra con la 
pulsacion es simplemente que el motor de la ductora de cinta arranque 
y que el mecanismo "lectador" de informacion comience a actuar. Si 
la cinta no comienza a pasar, pulsa otra tecla (la costumbre es pulsar 
la tecla ENTER, que para eso la hacemos mas grande) y comprueba que 
no tienes presionada la tecla PAUSE de tu ductora de cinta. Tambien 
si pulsas mas de una tecla, el ordenador no lo tendra en cuenta y 
comenzara igualmente a trasvasar la informacion desde la cinta hasta 
su memoria. 



Capftulo 2 Pagina 5- 



CASSETTE (Datacorder) 



Observa tambien que en el comando no has resenado ningun nombre de 
programa en particular. Y si no mencionas un nombre de programa en 
el comando, justamente despues de las comillas, como en este caso: 



run 



el ordenador solo escrutara la cinta hasta que encuentre el primer programa 
grabado en ella, que es el que comenzara a cargar e inmediatamente 
a ejecutar, tal y como le has mandado. Cuando esta CARGANDO el 
programa, te lo indica en pantalla mediante el mensaje: 

Loading WELCOME 1 block 1 

ya que asi' se llama -WELCOME 1- el primer programa de una serie de 
bloques que el fabricante de esa cinta ha preparado. En el CPC464, cada 
programa se GUARDA en cinta en la forma de bloques consecutivos de 
informacion (con un maximo de 2Kbs, (que ya veremos que es) que son 
lectados y traspasados a la memoria del ordenador. Cada bloque de 
informacion esta identificado en la cinta de manera univoca, y el mensaje 
de la pantalla te indica el bloque corriente en cada momento. Despues 
de trasvasar un bloque de informacion, la ductora detiene la operacion 
momentaneamente, y luego vuelve a comenzar y casi al mismo tiempo 
se actualiza el mensaje que aparece en pantalla para indicarte el nuevo 
numero del bloque corriente. 

Si en cualquier momento el ordenador detecta informacion erronea, te 
mostrara un mensaje de error (Apendice VIII) indicandote las caracteristicas 
del error. Generalmente no es posible hacer ninguna otra cosa que no 
sea rebobinar la cinta e intentar volver a cargar el programa. 

Supongamos que el ordenador ha cargado la cinta en memoria y comienza 
a ejecutar el programa. Vete leyendo las instrucciones que aparecen en 
pantalla y el programa de Bienvenida que gobierna el ordenador hara 
el resto. 



2.5 Mas-seguro o mas-rapido 

El CPC464 dispone de dos CADENCIAS para trasvasar datos desde y 
hasta la ductora de cinta: 

-una cadencia supersegura de 1000 baudios 

-una cadencia superrapida de 2000 baudios 

-y recordando que los baudios (es una medida de los tiempos de la 
telegrafia para indicar el numero de senales transmitidas por segundo, 
corresponderian en este caso por tanto, a 1000 bitios por segundo 
y 2000 bitios por segundo respectivamente). 



Capftulo 2 Pagina 6 



CASSETTE (Datacorder) 



Por lo tanto, a la cadencia de superrapidez se trasvasan datos desde y 
hasta la cinta dos veces mas rapidamente que con la cadencia supersegura, 
sacrificando los margenes para errores que algunas veces se precisan 
para tener en cuenta la falta de homogeneidad en las cintas de bajo coste 
y los errores suscitados por los diferentes alineamientos de los cabezales 
de lectura y escritura en las diferentes ductoras de cinta. 

Para programas que se almacenen y recuperen usando la misma maquina, 
la cadencia de superrapidez ha demostrado que es suficientemente fiable 
si empleas cintas de calidad razonable. Con esa cadencia tambien podras 
cargar la mayorfa de las cintas comerciales con programas directamente 
y sin errores -aunque AMSTRAD siempre aconseja que todos esos programas 
sean grabados doblemente, con una y otra cadencia. 

El ordenador automaticamente se prepara para leer a la cadencia con 
que esta grabada una cinta. Pero cuando GUARDAS un programa, necesitas 
decirle al ordenador si deseas usar la cadencia superrapida, o por omision 
lo hara en la cadencia supersegura que es la prescrita como normal. 

Si eliges la cadencia de 2000 baudios para grabar tus programas y datos, 
comprueba que estas en modo directo (con el aviso Ready en pantalla) 
y teclea: 

SPEED WRITE 1 

con lo que se preparara para trasvasar datos a esa velocidad; y para 
regresar a la cadencia prescrita como normal, puedes simplemente 
restaurar el ordenador (en cuyo caso perderas todo lo que tengas en 
memoria) o simplemente teclear cuando este PREPARADO: 

SPEED WRITE 



2.6 Grabando programas y datos en el cassette 

BASIC tiene varios comandos en relacion con la manera en que se graba 
informacion en el cassette. Lo resumimos brevemente aqui' y presentamos 
algunos ejemplos. 

2.6.1 SAVE , '<nombre-fichero> ,, 

El metodo mas directo de depositar informacion en el cassette es usar 
el comando SAVE cuando el CPC464 muestra la palabra Ready despues 
de ejecutar o listar un programa. Con el programa breve que presentaba 
el repertorio de caracteres visibles comentado en el capitulo 1 como 
objeto de nuestro comando de GUARDAR programas en cassette, 
trabajaremos en los ejemplos. 



Capftulo 2 Pagina 7- 



CASSETTE (Datacorder) 



I 



El <nombre-fichero> puede ser cualquier combinacion de 16 caracteres 
(incluyendo los espacios en bianco). Si intentas emplear un NOMBRE DE 
FICHERQ con mas caracteres, no se tendran en cuenta el caracter 172 
y los siguientes. Cuando tengas el programa en la memoria del ordenador, 
teclea por ejemplo: 

SAVE "CfiRACTERES" 

a lo que el ordenador respondera con el mensaje: 

Press REC and PLAY then any key: 

Recuerda lo que hemos comentado sobre el termino "cualquier tecla", 
y observa que la ductora de cinta se pone en marcha y el ordenador 
GUARDARA el programa identificandolo con el nombre fichero resenado 
en el comando: CARACTERES. 



IMPORTANTE 



Observa que el ordenador no puede detectar si has apretado o no las 
teclas del cassette correctas, asf que si solo aprietas PLAY, la ductora 
se pondra en marcha y el programa parecera que queda guardado pero 
no es asi". 

PRECAUCION: Si accidentalmente aprietas REC y PLAY, cuando lo que 
quieres lectar un programa de la cinta y cargar en memoria, lo que 
consigues es borrar el programa de la cinta, ya que estas grabando "nada". 
Si no lo interrumpes pulsando la tecla ESC, la cinta continuara marchando 
hasta el final y quedara completamente borrada ya que el ordenador no 
habra encontrado ningun programa haciendo operaciones de grabacion!. 
Si estas nervioso y quieres evitar la perdida de datos por esta causa, 
habituate a quitar la lengiieta de proteccion ante escritura de tus cassettes 
antes de que empieces a tener motivos para estar nervioso realmente. 

Hay cuatro maneras en que puedes GUARDAR ficheros en el CPC464. 
Has visto el metodo mas general, pero existen otros tres metodos 
alternativos para propositos mas especializados. 



2.6.2 SAVE "^ombrefichero" ,A 

El procedimiento es igual que antes, excepto que se interpreta el sufijo 
,A por el ordenador como que requieres guardar el programa o los datos 
en la forma de un FICHERO TEXTUAL ASCII (literalmente con el codigo 
ASCII para cada simbolo que aparezca en el fichero), en lugar de utilizar 
la notacion "taquizada" que el ordenador usaria si no le dices lo contrario. 

Este metodo de conservar informacion se aplica primordialmente a los 
ficheros creados por los ELABORADORES DE TEXTOS y otros programas 
de aplicacion que preparan ficheros para ser posteriormente tratados 
con otros programas. 



Capftulo 2 Pagina 8- 



CASSETTE (Datacorder) 



2.6.3 SAVE •knombrefichero" ,P 

La clausula ,P en este comando le indica al ordenador que proteja la 
informacion que deposita en la cinta (y lo hace "cifrando" la informacion 
de manera que ni el servicio secreto podra descifrarlo) y que solo puede 
ser trasvasada a la memotria del ordenador usando los comandos RUN 
o CHAIN. Se hace para evitar que nadie pueda cargar lo del cassette 
en la memoria y luego detener la ejecucion mediante la tecla ESC y 
simplemente listar el programa. Si tu mismo crees que posteriormente 
vas a editar o alterar el programa guardado de esa manera, mejor manten 
una copia en lugar seguro y grabada en cinta sin este tipo de proteccion 
para que puedas hacerlo. 



2.6.4 SAVE "<rK)mbrefichero> n > B,<direccion inicial>, <longitud> 
[,<direccion entrada>] 

Esta opcion te permite depositar en cinta un bloque de memoria con 
sus contenidos y en forma binaria, como una copia exacta de los valores 
alojados en cada una de las celdillas de memoria. Es necesario comunicar 
al ordenador la direccion inicial de la seccion de memoria que quieres 
guardar, la longitud de la seccion en bicos, y la direccion de carga en 
que comenzara la ejecucion del programa si esa seccion que guardas va 
a ser inmediatamente ejecutada despues de ser recuperada de la cinta. 

Esta posibilidad de grabar copias exactas de secciones de memoria permite 
que guardes directamente en el cassette la informacion que aparece en 
la pantalla, que es lo que solemos llamar VOLCADO o VERTIDO de la 
memoria en la cinta. Una de las formas de aprovechar esta facultad es 
para construir los "titulares" para programas que debido a su longitud 
tardan bastante en ser cargados en memoria. 



2.6.5 Ficheros sin nombre y el comando CATalogo 

Si guardas un fichero en cinta sin darle un nombre que lo identifique, 
usando: 

SAVE"" 

el ordenador lo guardara en la cinta como un "fichero sin nombre". En 
la cassette puedes guardar tantos ficheros como quepan en la cinta, usando 
los mismo nombres o distintos, o no dandoles nombres; quedaran 
secuencialmente uno detras de otro, que en eso se diferencian de los 
discos en que es imprescindible asignar un nombre "univoco" a cada uno 
de los ficheros que guardas. 

Rapidamente le perderas la pista a tus programas si no les das nombres 
adecuados y que te recuerden de que se trata. Y ademas te aconsejamos 
que siempre anadas algun tipo de referenda a la fecha dentro del nombre 
para que puedas saber cual es la version mas reciente de tus programas 
y ficheros de datos. 



Capftulo 2 Pagina 9 



CASSETTE (Datacorder) 



Puedes sacar el CATALOGO con el contenido de una cinta si le tecleas 
el comando CAT, y luego llevas a cabo la operacion que el ordenador 
te pide con el mensaje: 

Press PLAY then any key: 

El sistema ira enunciando los ficheros contenidos en la cinta, mostrando 
todos los <nombres de fichero MAYUSCULAS, seguido del numero del 
bloque corriente, y luego median te un solo caracter, la clase de fichero 
de que se trata: 

$ es un programa BASIC standard 

% es un programa BASIC protegido 

* es un fichero textual ASCII 

& es un fichero en notacion binaria 

Y al final de la linea, el aviso OK te indica que el fichero es perf ectamente 
"lectable" y que hubiera sido cargado en memoria si le hubieses pedido 
que lo hiciera. Al efectuar la funcion CAT no se altera en absoluto el 
programa existente en la memoria del ordenador. 



2.7 Read errors 

Si en algun momento aparece en pantalla el mensaje Read error, es serial 
inequivoca de que se ha producido un ERROR DE LECTADO o LECTURA, 
durante la operacion de carga que el CPC464 estaba realizando; la ductora 
de cinta continuara en marcha y el ordenador seguira lectando los bloques 
que encuentre despues del error, pero no intentara cargarlos a no ser 
que correspondan al primer bloque del programa que esta intentando 
infructuosamente cargar. 

Eso significa que despues de este error, puedes detener la cinta apretando 
la tecla del cassette [STOP/EJECT], rebobinar hasta el principio de la 
cinta y apretar de nuevo la tecla PLAY. El ordenador hara otro intento 
de cargar el programa cuya carga fue fallida por el error, y con suerte 
esta vez la carga sera lograda. 

Los errores en las cintas son provocados por diversas causas, siendo la 
mas comun un dano accidental en la superficie de grabacion y lectura 
de la cinta magnetica por aranazos, dobleces, y otros defectos. Tambien 
puede surgir de la practica aparentemente inocente de apagar el ordenador 
mientras todavia esta apretada la tecla PLAY o las teclas REC y PLAY. 

Y es debido a que con una tecla pulsada, la cinta esta frotando contra 
el correspondiente cabezal de lectado o grabacion, y se puede generar 
un impulso con la extracorriente de ruptura al descargarse el alimentador 
y pasar a traves de esos cabezales y danar la cinta. Incluso, aunque la 
cinta por si' misma esta estacionaria, este impulso de apagado (y tambien 
el de encendido) puede indudablemente, deteriorar la informacion en esa 
pequena parte de la cinta y hacerla ilegible. 



Capitulo 2 Pagina 10- 



CASSETTE (Datacorder) 



Ademas, la cinta estacionaria esta sujeta a fricciones entre el pequeno 
cabestrante y el rodillo de arrastre, lo que al prolongarse excesivamente 
puede conducir a la creacion de arrugas en la superficie de la cinta. 

Tambien se pueden producir errores en la operacion de lectura si la cinta 
fue previamente grabada en otro CPC464 cuyo cabezal de grabacion 
estuviera incorrectamente alineado. 

Tambien se producen errores ocasionalmente por razones puramente de 
azar. La cinta en cassette no fue disenada originalmente como medio 
de almacenamiento de informacion "discreta" y como tal tiene varias 
desventajas que solamente se evitan en los equipos de almacenamiento 
en cinta profesionales mucho mas complejos y considerablemente mas 
caros. 

A pesar de todo lo que pueda parecer, las cassettes efectuan una labor 
excelente al proveer un "medio" standard para el almacenamiento y 
recuperacion de la informacion en los ordenadores, y lo hacen con un 
bajo coste. Las limitaciones debido a los tamanos de las parti'culas 
magneticas de la superficie de la cinta, conjuntamente con la velocidad 
con que la cinta pasa por los cabezales de lectura y grabacion, deter minan 
un li'mite concreto sobre la cadencia con que se pueden transferir datos 
entre la ductora de cinta y el ordenador. Intentar sobrepasar esa cadencia 
mas alia de la cota superior de tolerancia del sistema, provocara un 
funcionamiento poco fiable, particularmente con los metodos de 
duplicacion masiva de cintas que se usa para comercializar los programas 
en soportes de bajo coste. 

OBSERVA: Que las cassettes que contienen programas para otras clases 
de ordenador, no pueden ser cargados en el CPC464. Pueden parecer 
iguales, e incluso puede que hagan sonidos similares cuando se reproducen 
mediante un sistema de audio, pero no podran ser cargados ni desde luego 
ejecutados. Si encuentras alguno que aparentemente carga y ejecuta, 
te rogamos encarecidamente que nos lo comuniques dandonos detalles 
de la clase de ordenador y del programa en cuestion. Ya tomaremos 
medidas. 



2.8 Consideraciones sobre el Datacorder 

Aunque el Datacorder -nombre comercial de esa ductora de cinta- 
acepta gustosamente todos los cassettes de cualquier duracion hasta C90, 
debieras usar unicamente el C12 (6 minutos por cara) y como mucho 
el C30. Los programas grabados al final de las cintas largas son una 
pesadez a no ser que estes dispuesto a esperar un rato hasta que se 
encuentran (y que recuerdes el nombre de fichero que le diste), o que 
seas lo suficientemente meticuloso como para emplear el contador de 
cinta en un sistema INDEXADO, incluyendolo por ejemplo dentro del 
nombre del fichero. 



Capftulo 2 Pagina 1 1- 



CASSETTE (Datacorder) 



Si quieres escribir encima de un programa grabado en una cinta de larga 

duracion, debes ser muy cuidadoso en localizar el punto de comienzo 

y procurar no sobre-escribir cualquier otro programa que deseas conservar. 

De forma general, dirfamos que uses cassettes separadas con tan pocos 
programas como te sea posible. Las cassettes CI 2 son relativamente 
baratas y si danaras la cinta por cualquier percance, es mucho menos 
atractivo sacar copias de un cassette de larga duracion que solo tiene 
algunas partes buenas. 

Finalmente, recuerda por favor que los programas comerciales casi siempre 
se suministran bajo condiciones estrictas frente a las copias, y con los 
derechos reservados. No debes intentar copiar ni en ninguna manera 
duplicar programas grabados en cassette que no esten conformes con 
las condiciones de ventas de esos programas (algunos programas realmente 
te animan a que por lo menos saques una copia de reserva, y eso es logico), 
y sobre todo, evitar eso de que es "solo para un amigo". Las leyes sobre 
los derechos reservados se estan revisando para conternplar todas las 
formas de duplicacion de programas sin autorizacion, y aunque ha habido 
poca vigilancia hasta la fecha, esta situacion cambiara sustancialmente 
en los proximos anos, y puede que sea con efectos retroactivos. Y desde 
luego, hay unos ciertos valores eticos y morales que estan siendo 
vulnerados al duplicar los programas. Y eso tambien importa. 



Capftulo 2 Pagina 12- 



BASIC AMSTRAD: La esencia 



3. Lo primordial de BASIC 

Una breve introduction a la programacion usando el lenguaje BASIC 
AMSTRAD. 

Temas tratados en este capftulo 

* Las reglas sintacticas y la description de la sintaxis 

* Los comandos de exposition, los cauces de exposition 
y la forma de exposition. 

* Zonas en pantalla 

3.1 Lo basico del BASIC 

La relation fundamental del BASIC incorporado en el CPC464 con la 
operation interna de los ordenadores, se presenta en el Apendice II. Si 
anteriormente no has programado un ordenador, intentaremos ayudarte 
en tu proceso de aprendizaje, pero puede que sea necesario hacer algunas 
hipotesis que pudieran causar confusion al principiante. Si asi es, te 
sugerimos que ojees algunos de los muchos libros y cursos disponibles, 
que estan planteados para presentar los aspectos fundamentales de la 
programacion al recien llegado. 

Seras capaz de sacar provecho de este capitulo si sigues los simples 
ejercicios presentados y que no exigen una comprension completa de lo 
que pasa, aunque cuantas mas reglas aprendas, mas facil te sera todo 
lo que viene. 

BASIC es el lenguaje CONGENITO en tu ordenador CPC464. En fabrica 
lo nemos incorporado y ya reside permanentemente en la memoria de 
tu ordenador. En cuanto lo enciendes, sentiras su presencia porque te 
saluda con la palabra: 

Ready 

que indica que esta "dispuesto" y "preparado" para obedecer tus ordenes. 

El lenguaje BASIC es el lenguaje mas simple de aprender. Esta organizado 
en torno a palabras claramente definidas y a una gramatica simple, y 
opera de una manera completamente racional y logica, en cuanto 
comprendas las reglas. 

El BASIC AMSTRAD es capaz de obedecer los comandos que resenamos 
en el capitulo 8. Cada comando se caracteriza y comienza por una o 
mas palabras clave, que indican la operation que el ordenador hara al 
obedecer ese comando. 

ii Capftulo 3 Pagina 1— 



BASIC AMSTRAD: La esencia 



Los comandos incluyen una serie de parametros -que permiten "matizar" 
la accion especificada por el comando y algunos de los cuales son 
opcionales. En general, cada parametro puede venir designado por una 
expresion en la que intervienen constantes, variables y funciones. Las 
combinaciones de si'mbolos tomadas del repertorio admitido, sean letras, 
cifras, signos, etc., cuando estan "ensartados" y deben ser tratados por 
el ordenador LITERALmente (es decir, letra a letra) lo denominamos 
datos litericos o literales. Cuando solamente intervienen "dfgitos", y lo 
que es mas importante, ha de ser tratado como una cantidad, se denomina 
dato numerico o numeral, y hay diversas clases dependiendo de la precision 
en enteros, reales, etc. y dependiendo del sistema de numeracion empleado: 
decimal (base 10), hexadecimal (base 16) y binario (base 2). La informacion 
en las cintas de cassette se guarda en colecciones de datos relacionadas 
entre si' denominadas ficheros. Y se depositan y recuperan de la cinta 
SECUENCIALMENTE (lo que quiere decir, uno inmediatamente detras 
de otro), en oposicion a los ficheros que emplean como soporte los 
diskettes en que los ficheros se guardan con discernimiento, porque se 
puede DISCERNIR el sitio donde estan guardados, y los cabezales de 
lectura y grabacion pueden ser situados directamente en ese sitio, para 
depositar o recuperar la informacion. 



3.2 La estructura de un programa en BASIC 

Los programas en BASIC son series de liheas de instrucciones. Una li'nea 

puede incluir varias instrucciones, separadas por dos puntos, con la unica 

limitacion que el numero maximo de caracteres que puede haber en la 

li'nea es de 255. Una li'nea puede ocupar varios renglones, pero es el numero 

que precede a todas las li'neas del programa el que delimita una li'nea 

de la siguiente. En el modo directo, damos comandos utilizando el teclado, 

que son en su mayori'a iguales a las instrucciones pero que no comienzan 

con un numero de li'nea. En el modo programa, el ordenador examina 

las li'neas de programa existentes en su memoria y las va cumplimentando 

sucesivamente siguiendo un orden ascendente de numeros de linea a no 

ser que una de ellas le indique otra cosa. 

El BASIC AMSTRAD permite que el usuario anada y quite li'neas del 
programa mientras el ordenador esta en el modo directo, preparado para 
recibir comandos y que corrija las li'neas existentes. Antes de ejecutar 
o de LISTAR un programa, el BASIC reorganizara internamente el orden 
de las li'neas para conservar una secuencia ascendente de numeros de 
li'nea, sin tener en cuenta el orden en que fueron tecleadas. 



3.3 Imposicion por teclado de una li'nea de programa 

BASIC acepta li'neas de programa siempre que tengan menos de 255 
caracteres y esten terminadas pulsando ENTER. 



Capftulo 3 Pagina 2 



BASIC AMSTRAD: La esencia 



Durante la imposicion de una linea, es posible EDITAR la corriente linea, 
y usar las facilidades del cursor de COPIAR para insertar caracteres 
en la linea tornados de cualquier otro sitio del texto que aparece en 
pantalla. (Consulta capitulo 1, seccion 1.2.7). 

Todas las palabras clave deben estar precedidas y seguidas de un signo 
SEPARADOR, que puede ser bien un espacio en bianco, un signo 
o signo de puntuacion (, : etc.) es debido a que esta admitido usar 
variables cuyo nombre incluye una palabra clave (o palabra reservada), 
y obviamente el ordenador no puede distinguir el comienzo y terminacion 
de la palabra clave cuando esta "cercada" con otros caracteres que no 
sean separadores. 

Puedes teclear las palabras clave usando letras minusculas (sin pulsar 
simultaneamente SHIFT) o letras mayusculas (pulsando simultaneamente 
SHIFT). 

El comando PRINT puede abreviarse usando simplemente el signo de 
interrogacion (?) y cuando se usa de esta manera, no se necesita el 
caracter delimitador. Los signos de operaciones matematicas (+ - * / 
MOD) tambien efectuan al mismo tiempo la funcion de delimitar las 
palabras clave, de manera que lo siguiente es valido, (aunque no te 
animamos a que lo emplees, dado que adquiririas malos habitos tecleando 
lineas de programas sin espacio, cuando son siempre convenientes y 
algunas veces imprescindibles). 

for n= 1 to 50: ?ns next 

De igual manera, el apostrofe (') conseguido pulsando simultaneamente 
SHIFT y la tecla marcada con 7, puede usarse en lugar de la palabra 
reservada REM cuando das instrucciones de comentario o MEMOrandum. 

Los espacios en bianco extras seran despreciados, y puedes usarlos para 
CONFORMAR el listado del programa indicando bucles, subrutinas, etc. 



3A Terminologfa 

Para describir los comandos y palabras clave del BASIC, debe usarse 
una terminologia formal aunque simple. Cada comando se describe en 
la forma en que puede ser impuesto por el teclado, con cualquiera de 
las variables o parametros opcionales senalados por "marcadores de 
posicion" (varias clases de parentesis y corchetes) que hacen referenda 
a elementos detallados en la descripcion de la instruccion. 

Estos elementos o partidas estan representados por diversos nombres 
y encerrados entre corchetes angulados (< >). Por ejemplo, en los diversos 
sitios en que se exige un NUMERAL, es decir, directamente un numero 
o bien una variable numerica, o bien una expresion que una vez evaluada 
de como resultado un numero, lo representeremos simplemente mediante: 
<numeral>. 



Capftulo 3 Pagina 3- 



BASIC AMSTRAD: La esencia 



Mientras que cuando solo se acepte en la instruccion una constante 
numerica o numero, escribiremos: 

<numero> 

Todo lo que no esta entre corchetes angulados, debera ser tecleado tal 
y como se resena. Por ejemplo, el comando STOP, adopta la forma: 

STOP 

Cuando en una definicion de instruccion interviene una parte opcional, 
esa parte opcional se encierra entre corchetes cuadrados, por ejemplo 
si el numeral mencionado anteriormente fuera opcional, entonces 
apareceria: 

[<numeral>] 

Si esa parte opcional puede repetirse varias veces en la instruccion, 
(incluyendo la repeticion en que no aparece en absoluto), incluiremos 
un asterisco despues del corchete cuadrado de cierre. Por ejemplo, una 
constante numerica, que requiera como minimo la presencia de un digito, 
apareceria 

<dfgito>[<dfgito> ] * 

Y por tanto, a la hora de escribir la instruccion completa, podriamos 
sustituirla por: 

3 

6 34 

6 344 

6 745978, etc. 

En muchas descripciones de instruccion se usa una lista cuyos elementos 
estan separados por comas. Se usa una forma abreviada, que se explica 
mejor mediante un ejemplo. Asf: 

<lista de: <expresion> significa: < expresion >[,< expresion>] * 
•clista de: [//] <numero> significa: [#] <numero> [,[//]< numero ] * 

Y a la hora de concretar la instruccion, debe ser sustituido por algo como: 

#3,4 

6 3,4,4 

6 # 7,4,5,9,7,8, etc. 

Estas LISTAS pueden ser de un solo elemento. Si la lista contiene mas 
de un elemento, cada uno de los elementos sucesivos debe estar precedido 
por el signo coma, que marca el lfmite o delimita los elementos que el 
ordenador debe tratar por separado. 

Los numeros pueden expresarse usando diferentes NOTACIONES: 

a. <humeros sin escala> 

... son numeros en los que no aparece la parte del exponente que 
se usa en la notacion cienti'fica. 
Capftulo 3 Pagina k- — 



BASIC AMSTRAD: La esencia 



b. <numeros con escala> que es la notacion cienti'fica habitual en que 
el numero esta "elevado a la potencia" o segun ESCALA, usando la 
forma: 

2E4 (2x10 elevado a la potencia de 4, 6 2*1 1 *), y la escala habitual 
es 10. 

...y obviamente la parte del exponente puede ser positiva o negativa. 

c. <r»umeros con base> 

...son numeros que expresan cantidades usando otro SISTEMA DE 
NUMERACION, bien sea el binario o el hexadecimal (Apendice II): 

Base 10 (la condicion prescrita para omisiones) 100 

Base 16 (hexadecimal) _.. &-640R&H64 

Base 2 (binario). _ &X1 100100 

Y observa que mientras la H es opcional, la X es obligatoria. 



3.5 La practica perfecciona: Presentando PRINT 

Para demostrar la manera en que funciona esta terminologia, aquf hay 
algunos ejemplos practicos. 

Una de las instrucciones del BASIC que acepta la mayoria de las facetas 
de la terminologia, es la correspondiente a la palabra reservada PRINT. 
Un comando es una frase en BASIC que comienza directamente por una 
palabra clave y que hara que el ordenador la ejecute inmediata y 
directamente. Mientras que llamamos instruccion cuando esa frase esta 
precedida por un numero de linea de programa, y el ordenador cuando 
se le impone por teclado, simplemente la guarda en su memoria. Una 
FUNCION que entrega un resultado funcion del argumento, exige la 
presencia de un comando no solamente para "invocar la funcion", sino 
para poder EXPONER el resultado. Por ejemplo: 

PRINT SQR<64) 

Con esto, le estas pidiendo al CPC464 que exponga el resultado de aplicar 
la funcion raiz cuadrada (SQR) al numero 64 (el argumento). 

Facil, pero esta implicito que existe algun convenio para entendernos. 
O si no: ^POR DONDE expone el resultado conseguido? 

Efectivamente, el ordenador dispone de varios CAUCES de comunicacion 
con el mundo exterior. Es decir, un cauce Ueva los resultados a la pantalla 
y ya veremos que puede ser subdidivida en varios "lienzos". Otro cauce 
de comunicacion es con la impresora, otro cauce de comunicacion es 
con la ductora de cinta, etc. 



Capftulo 3 Pagina 5- 



BASIC AMSTRAD: La esencia 



L 



La palabra reservada PRINT se utiliza para decirle al ordenador que^ 
exponga o "saque" algo (el resultado en este caso de aplicar la funcion 
raiz cuadrada) hasta un determinado "cauce" de salida". Y cada cauce 
queda identificado por un numero del al 9 y en las descripciones de 
las instrucciones aparece como <nuneral de cauce>, que sera la constante 
numerica, variable numerica o expresion cuyo valor es numerico, que 
determinara el cauce concreto que usara al cumplimentar esa instruccion. 

Los cauces con numeros del al 7, corresponden a "ventanas" o "lienzos" 
de pantalla que debemos haber estipulado previamente mediante el comando 
WINDOW. 

El cauce 8, corresponde al PORTAL por donde sacamos en paralelo los 
datos hacia la impresora, y que solamente usaremos si tenemos conectada 
correctamente una impresora (compatible Centronics). 

El cauce 9 es el que saca informacion hacia la ductora de cassette, donde 
tambien previamente habremos definido un FICHERO y lo habremos abierto 
adecuadamente. Por tanto, la descripcion del comando PRINT, (usando 
solo lo visto hasta ahora, que vendra mas) seria: 

PRINT [#<numeral del cauce>][<lista a exporter >] 

Los corchetes cuadrados indican que no tiene que resenar en el comando^ 
el <numeral del cauce> siempre y cuando quieras que saque la informacion 
hacia el organo periferico prescrito para omision de ese parametro, y 
tenemos realmente que decir la lista de datos que queremos que exponga 
(y si no ponemos nada, el ordenador sacaria una li'nea en bianco hacia 
el cauce de salida que corresponda). El cauce prescrito, cuando no le 
indicas lo contrario, es el cauce principal #0, que corresponde a la pantalla 
y en la posicion senalada por el cursor en ese momento. Ensaya con el 
comando ya clasico: 

PRINT "HOLfi" 

y recuerda que debes concluirlo pulsando ENTER (y hasta que lo hagas, 
el ordenador solo "escucha" lo que le dices y "repica" los caracteres 
tecleados en la pantalla, pero como el que oye Hover). Solo cuando pulsas 
RETURN ve que has concluido y pasa a examinar lo que le has tecleado 
y realizar lo que le pides si no detecta un error sintactico. Solemos decir 
que simplemente lo que tecleas lo esta metiendo en el "buzon de entrada". 

El ordenador cumplimenta lo mandado y responde con: 

HOLfi 

situado donde corresponde segun la posicion corriente del cursor. Y observa 
ademas que las comillas no han sido enviadas hasta el cauce de salida. 
Las comillas son simplemente para senalar al BASIC de una manera precisa 
y exacta la SARTA de caracteres que tiene que exponer. 



Capftulo 3 Pagina 6 



BASIC AMSTRAD: La esencia 



Teclea ahora: 

PRINT MO, "HOLfi" 

...y el resultado es el mismo. Pero si tecleas: 

PRINT H4, "HOLfl" 

observaras que HOLA aparece en la esquina superior izquierda de la 
pantalla, y es debido a que el primer envi'o al cauce numero 4 -que por 
ahora no has estipulado usando el comando WINDOW, y que por tanto 
cubre todo el area de textos en la pantalla-, por lo que como todos los 
textos enviados por primera vez hacia un cauce de exposicion por monitor 
o pantalla, la posicion de comienzo es la esquina superior izquierda. El 
mensaje de salutacion al poner en marcha el ordenador, usa el cauce 
#0 que es el prescrito como normal, asf que en el caso anterior, ya lo 
habias usado y por tanto el dato a exponer se mostraba a continuacion 
de los datos ya expuestos. 

Esta facultad del BASIC AMSTRAD confiere al ordenador CPC464 un 
instrumento extremadamente potente, dado que te permite preparar en 
pantalla diversas "vinetas" usando comandos y funciones muy simples, 
con lo que contribuye a producir facilmente imagenes del tipo mosaico, 
con una excelente presentacion. 

Observa por segunda vez que la sarta de caracteres encerrada entre las 
comillas, es aceptada literalmente por el ordenador, sin preocuparse en 
absoluto por lo que hay dentro, por eso le llamamos lftero o decimos 
que es un dato de indole literal. En esos literos tambien puedes incluir 
palabras reservadas: 

PRINT "4*4" 

y el ordenador te respondera con: 

4*4 

Para indicar a BASIC que debe efectuar el producto 4*4, los numeros 

y el SIGNO OPERADOR (el simbolo de multiplicacion *) debe ser accesible 

al BASIC, y dirigir el resultado hacia un cauce de salida. Por ejemplo: 

PRINT 4*4 

...y BASIC nos presentara la respuesta: 

16 

Observa que el numero esta desplazado una posicion en relacion con el 
margen izquierdo, dado que BASIC reserva este espacio para colocar 
cuando lo precisa el signo monadico menos (-) que identificaria un numero 
negative 

El comando PRINT tiene muchas otras variantes, y puede usar la 
posibilidad de CONFORMAR el resultado a exponer mediante la utilizacion 
de una serie standard de "PLANTILLAS" u "HORMA". 

— — — — — — — Capftulo 3 Pagina 7 — - 



BASIC AMSTRAD: La esencia 



La <lista a exponer> en un comando PRINT hace referencia a la serie 
de datos que han de sacarse hacia el cauce especificado. Los elementos 
de la lista pueden ser numerales o LITERALES, incluyendo las variables 
litericas y las expresiones cuya evaluacion da como resultado un litero, 
que es tanto el contenido de una variable literica como lo que esta 
encerrado entre comillas. 

Si en el comando de exposicion, se usa la clausula USING, podemos 
exponer los numeros de acuerdo con la HORMA utilizada en dicha clausula, 
de manera que pueden mostrarse alineados por^ la derecha, y con la parte 
fraccionaria limitada a un cierto numero de digitos. 



3.6 PRINT USING y las ZONAS de pantalla 

Al ponerse en marcha, el BASIC considera la pantalla subdividida en 
ZONAS que ocupan 13 posiciones a lo ancho. Cuando la instruccion PRINT 
incluye en la lista de datos a exponer una coma (,), el siguiente dato 
es TABULADO hasta situarse al principio de la siguiente zona. Si se dispone 
de menos columnas al exponer en la ultima de las zonas de las especificadas 
para esa zona, el BASIC comenzara a exponer el siguiente^ dato una^ linea 
mas abajo. No corta el dato y pone guion para que continue en la linea 
siguiente. 

Si no se especifica la clausula USING, el BASIC expone los numeros 
positivos precedidos por un espacio, y los negativos precedidos por el 
signo menos. Todos los numeros son separados del dato siguiente por un 
espacio en bianco. El punto decimal (que se usa para indicar la parte 
fraccionaria de un numero) no se muestra si el numero no posee parte 
fraccionaria. 

El BASIC AMSTRAD no admite el uso de la tacla TAB como tabulador 
de columnas, dado que hay una considerable falta de uniformidad en los 
criterios sobre el significado de esta funcion, entre los diversos dialectos 
de BASIC. Al pulsar la tecla TAB muestra la flecha de avance a la derecha 
(-»■), que es lo mismo que si se pulsa CTRL y la letra I, pero que no tiene 
ningun otro proposito en la BASIC AMSTRAD. 

3.7 PRINT TAB (<numeral entero>) (<lista a exponer>) 

El efecto de esta instruccion se comprueba mejor mediante un ejemplo. 
Teclea este programa y observa el resultado: 

5 MODE 2: INK 1,0: INK 0,9 

10 FOR N=l TO 5 

20 ZONE 40 

30 PRINT TflB(N*4)"HI",N 

40 NEXT 



Capltulo 3 Pagina 8 



BASIC AMSTRAD: La esencia 



Este programa muestra tanto la separacion en ZONAS de exposicion 
mediante la coma, y la funcion TAB (numeral entero). Vuelve a ejecutarlo 
alterando antes la li'nea 10 para que sea: 

10 FOR N=-5 to 5 

La clausula TAB hace que la primera posicion del primer dato a exponer 
mediante la instruccion PRINT, avance el numero de espacios en bianco 
especificados por el numeral entero. La zona puede estipularse dentro 
de la gama 1...255, como veremos en el capitulo 8. 

La instruccion PRINT USING se emplea para conformar los resultados 
de los calculos cuando es un numero real, y poder conseguir una tabulacion 
ordenada de las partes fraccionarias de los numeros. Es un concepto 
complicado que puede apreciarse mejor con los ejemplos practicos, dado 
que la expresion general es: 

PRINT [// -cnumeral del cauce>,] [< lista a exponer>][< clausula USANDO>] 
[<separador>] 

que no puede calificarse como "amistosa", especialmente dado que la 
<clausula USANDO> se divide a su vez en: 

USING <literal de horma >;[< lista a usar>] 

en donde a su vez la <lista a usar> se vuelve a subdividir en: 
< expresion >[< separador >< expresion > ] * 

Mejor ensaya con lo siguiente: 

PRINT 123.456, USING "### .*»« ,: ; 4567. 896 

apareciendo en pantalla como resultado, el siguiente: 



123.456 



"/.4567. 90 



que nos ilustra varios puntos. Primeramente, el primer elemento a exponer 
resenado antes de la clausula USING no se ve afectado. En segundo lugar, 
con la horma o plantilla que figura en la clausula USING se reserva el 
numero de posiciones a ocupar en pantalla por el dato numeral que viene 
detras, y que por supuesto puede ser una variable en lugar de un numero 
como en este caso. Y si este dato tiene mas digitos a la izquierda del 
punto decimal de los que has reservado mediante los signos "almohadilla" 
(//), sigue apareciendo el resultado tal y como se muestra en el ejemplo, 
pero precedido del simbolo de porcentaje para indicar que se ha rebasado 
el espacio reservado. Luego, observa que la coma resenada despues de 
123.456 ha provocado que el siguiente dato se exponga al comienzo de 
la siguiente ZONA de exposicion. Si hubiera sido un punto y coma en 
lugar de la coma, el segundo numero se expondria separado del primero 
simplemente por un espacio en bianco. Los numeros se separan siempre 
por un espacio en bianco cuando aparecen en la misma linea de pantalla 
(por razones obvias!). 



Capitulo 3 Pagina 9 



BASIC AMSTRAD: La esencia 



Observa ademas, que el segundo dato es REDONDEADO al aparecer en 
pantalla, y no se han TRUNCADO los digitos que sobran por la derecha 
de acuerdo con la "plantilla" de exposicion usada. 

Ensaya ahora con esto: 

PRINT 123.456, USING "###*«. #*+" ; 4567. 899 

y veras que el signo mas (+) aparecera a continuacion de mostrar el dato 
que esta usando la plantilla. Un signo menos (-) precedera a los numeros 
negativos si se omite cualquier otra especificacion. 

Esta variante PRINT USING es una posibilidad muy aprovechable para 
producir tablas de resultados. Siempre te avisara si la PLANTILLA 
especificada para exponer un dato es demasiado restrictiva (usando el 
signo de porcentaje %). 



■Capftulo 3 Pagina 10- 



Mas BASIC 



4. Variables, operadores y datos 

Manipulando la informacion en un programa BASIC. 

Temas tratados en este capftulo: 

* Conociendose y familiarizandose 

* Clases de variables: numericas y literales 

* Operadores, expresiones logicas 

* Tablas 

* LISTAS 

*.l Detectando la palabra reservada 

Observa (si ya no lo has hecho antes) que los comandos y funciones que 
son palabras reservadas en el BASIC AMSTRAD estan delimitados por 
espacios en bianco, signos de puntuacion, signos de operaciones numericas, 
etc. Los programas son mas faciles de leer y de DEPURAR, porque aunque 
puedes teclear las palabras reservadas tanto en mayusculas como en 
minusculas, cuando se lista el programa, todas ellas se convierten siempre 
a MAYUSCULAS. Si no lo estan, es una serial de que hay un error en 
la manera en que han sido tecleadas, y el programa no se ejecutara. 

El BASIC AMSTRAD te permite que incrustes palabras clave dentro de 
los nombres de las variables. Una variable en BASIC es el nombre de 
un sitio de la memoria en el que alojas un dato especffico. El nombre 
puede ser tan simple como una sola letra (y los nombres deben siempre 
empezar con una letra, no pueden empezar con un numero), aunque es 
mas facil de leer y comprender un programa largo si empleas nombres 
para las variables que reflejen a que se refieren. 

RESPUESTfl=4*4: print RESPUESTA 

Los nombres de las variables en el BASIC AMSTRAD pueden constar 
de 40 caracteres como maximo (y el primero debe ser una letra), y los 
40 son significativos. Los nombres no pueden contener espacios en bianco, 
o el BASIC solo leeria los caracteres anteriores al primer espacio en 
bianco y luego senalaria el hecho con un error: 

Syntax error 

que nos indica que se ha impuesto una serie ilegal de caracteres como 
nombre de una variable (Apendice VIII). Si quieres incluir separacion entre 
las palabras de un nombre, usa un punto (.) en el sitio en que 
correspondent el espacio en bianco. Son posibles todas las formas 
habituales de variables multiples, teniendo presente la necesidad de 
declararlas previamente mediante la instruccion DIMension. 



Capftulo * Pagina 1. 



Mas BASIC 



*.2 Formas de abreviar 

Es tedioso teclear PRINT cada vez, asi' que puedes usar en su lugar el 
signo de interrogacion, y el BASIC comprendera que quieres decir PRINT 
(en tanto y en cuanto no este colocado dentro de ninguna frase encerrada 
entre comillas). Observa que la opcion ? no exige que este delimitado 
usando un espacio en bianco como para las palabras reservadas. Si la 
usas en una instruccion y no como un comando directo: 

10?4*4 
run 

La respuesta tambien es la misma, pero ahora al listar este programa 
de una linea es como si hubiera habido magia... 

List 

10 PRINT 4*4 

Y aqui' tambien ha insertado un espacio en bianco antes de "expandir" 
el signo de interrogacion. En instrucciones PRINT que usaran constantes 
literales encerradas entre comillas, seria... 

10?"H0Lft" 

Tambien puedes ser perezoso y prescindir de las comillas de cierre, como 
ya habras observado al usar CTRL y ENTER para cargar el cassette de 
Bienvenida, ya que en pantalla aparecia el comando RUN". Eso mismo 
funciona en las lineas de programa, pero no es un buen habito, dado que 
si posteriormente vuelves a editar esa linea y le anades algo, probablemente 
te olvides de cerrar las comillas, que al anadir algo, ya si' que son 
necesarias. 

4.3 Lineas multi-instrucciones y calculos combinados 

Puedes efectuar uan serie de operaciones con una sola linea de programa 
en BASIC, de hecho tantas como te permita la limitacion de 255 caracteres 
por linea como maximo. Como siempre, las instrucciones deberan separarse 
mediante dos puntos (:). Tambien es posible efectuar series de operaciones 
matematicas: 
?2*8/5+5-4*777E9/3 

cuyo resultado sera: 
-1.036E+12 

Sin embargo, es esencial comprender el orden en que BASIC reconoce 
los diversos OPERADORES matematicos (+, -, *, MOD, etc.) cometeras 
equivocaciones. Las prioridades son: 

+ Potenciacion: elevar un numero a una potencia dada. 

Menos monadico o unario (el signo menos para declarar un numero 
como negativo. 
* Multiplicacion 



Capitulo "t- Pagina 2 



Mas BASIC 



/ Division 

\ Division entera: el resultado se corta dando solamente la parte entera 

del numero y descartando la parte decimal. 
+ Suma 
Resta 

Todo lo contenido dentro de los parentesis ( ) se calcula antes de cualquier 
otra cosa, y si el contenido de los parentesis es precisamente un calculo 
combinado, se maneja en el mismo orden de prioridades esbozado 
anteriormente; incluyendo cualquier parentesis extra que hubiera dentro 
de los anteriores. Como es obvio, debes siempre tener tantos parentesis 
de cierre o a derecha, como parentesis de apertura o a izquierda tengas; 
y el no cumpiirlo, suele ser la forma mas frecuente de error sintactico. 



bA Progresando 

Ya hemos hecho algun camino desde que presentamos la instruccion PRINT 
en la seccion 3.5. Ya debes haber percibido lo suficiente de las reglas 
fundamentales del BASIC AMSTRAD para permitirte adentrarte en el 
reino propio del BASIC, genuinamente informatico, en lugar de las facetas 
de pseudocalculadora. Las palabras clave en BASIC te las presentaremos 
a medida que las necesites, pero puedes consultar el capi'tulo 8, donde 
estan ordenadas alfabeticamente aunque las descripciones de uso no son 
obvias porque falta el contexto en que aparecen. 

Muchas palabras clave del BASIC dicen lo que quieren decir; el comando 
de VAYA a 50, solo necesita para ser comprendido saber que VAYA en 
ingles es GOTO, y con ello se deduce que le estamos mandando ir a la 
linea numerada con 50 y ejecutar lo que alii' encuentre. END es una 
palabra internacional, y por tanto le dice a BASIC que TERMINE el 
programa que esta ejecutando y vuelva a presentamos el aviso de 
DISPUESTO (que en ingles es Ready) para que podamos mandarle nuevas 
cosas. 

El modo directo (o inmediato) te permite teclear una serie de comandos 
y no una sola, si separas los comandos con el signo dos puntos (:), sin 
embargo, una vez que concluyas esa serie de comandos (pulsando la tecla 
ENTER) seran cumplimentadas y la linea no la puedes volver a usar porque 
no queda como instrucciones en memoria. Aunque en el CPC464, no 
necesites teclearla de nuevo porque puedes usar la posibilidad de COPIAR 
lo que hay en pantalla, mediante el cursor de copiar (y suponiendo que 
todavia sigue ahf, y no lo has mandado precisamente que limpie pantalla). 



Capftulo k Pagina 3- 



Mas BASIC 



k.5 Instrucciones condicionales y comparativas 

BASIC utiliza ampliamente la capacidad propia del ordenador para hacer 
tareas sencillas repetitivas, a gran velocidad y sin sentirse aburrido. Unos 
cuantos comandos de programacion estan disponibles para ayudarte a 
preparar estos procesos repetitivos (BUCLES, los llamamos), en que hay 
comandos que inician, continuan y detectan cuando debe terminarse de 
hacer las "rondas", porque se ha cumplido un conjunto predeterminado 
de condiciones. 

Normalmente, el ultimo de estas instrucciones que controlan los procesos 
repetitivos concierne a una EXPRESION DE RELACION. En otras palabras, 
que clase de relacion existe entre dos datos, y la clase viene determinada 
por el operador de relacion usado en la expresion. Puedes comparar 
constantes con constantes, o variables con variables, o variables con 
constantes. Los operadores de relacion son: 

< menor que 

<= menor que o igual 

= igual 

> mayor que 

>= mayor que o igual 

o distinto (no igual) 

Ahora te presentamos un breve programa que demuestra el uso de estos 
operadores, y esta basado en un tema muy querido para nosotros. Si no 
estas observando en este momento nuestro saludo: 

Amst rad 64K Microcomputer (vl) 
c 1984 Amst rad Consumer Electronics pic 
and Locomotive Software Ltd 

BASIC 1.0 

Ready 

...pues pulsa las teclas CTRL, SHIFT y ESC, manteniendo pulsadas las 
tres simultaneamente, con lo que el ordenador restaurara las condiciones 
iniciales y presentara nuestro saludo. Ahora prosigue y teclea lo siguiente 
(las instrucciones para editar el programa se dan en la seccion 1.2.7): 

10 INPUT "CUAL ES TU SALARIO" ;SALARI0 

20 IF SALARIO < 10000 THEN GOTO 30 ELSE 40 

30 PRINT "EXIGE UN AUMENTO" :END 

40 PRINT "EXIGE UN COCHE GRANDE" 

Ejecuta este pequeno programa, tecleando simplemente: 
RUN 

Capftulo * Pagina * 



Mas BASIC 



y el obligatorio ENTER, para que el ordenador se entere que has concluido. 

Aparecera: 

CUftL ES Til SftLfiRIO? 

y observa como el ordenador ha anadido automaticamente el signo de 
interrogacion al final, cuando espera que respondas para IMPONER el 
dato que teclees. Contesta usando solo numeros, no letras, signos de 
puntuacion o monetarios, etc., y concluye el dato usando la tecla ENTER. 

Anade ahora la linea 5 simplemente tecleandola, cuando el aviso de 
PREPARADO vuelva a aparecer: 

5 CLS 

Al ejecutarlo de nuevo, veras que se limpia la pantalla. Si tu primera 
respuesta fue menos de 10000, contesta ahora mas de 10000 para que 
aprecies la diferencia. Ahora amplia el programa original anadiendole 
lo siguiente como linea 50: 

50 IF SftLARIO > 30000 THEN PRINT 

"sobornate al contable" 

run 

El comando END de la linea 30 termina el programa y hace que el 
ordenador vuelva a presentar su divisa Ready. Dado que no hay comando 
END en la linea 50, el programa prosigue comparando el valor de la 
variable SALARIO con 30000, y SI Sf expone el mensaje correspondiente. 

Sigue trabajando y anade otra linea de programa con numero 60: 

60 IF SALfiRIO > 25000 THEN PRINT 

".... y prestame uno de los grandes" 
run 

Observa que si contestas por ejemplo 26000 cuando ejecutes este programa 
ampliado, veras que el BASIC pasa a traves de la linea 50 como si no 
existiera (ya que la PREMISA de que el salario sea mayor de 30000 no 
se cumple), y pasa a efectuar la comparacion y la operacion resenadas 
en la linea 60. 

En este momento, es hora de que construyas por tf mismo un programa 
usando las instrucciones comentadas hasta ahora. Observa la manera en 
que este programa ha ido "creciendo"; y la mayoria de los programas 
evolucionan de esta manera, lo que nos da pie para presentarte lo que 
quizas sea el concepto mas importante en programacion y que utiliza 
la habilidad ideal del BASIC para organizar. 



Capftulo 4 Pagina 5 — ' 



Mas BASIC 



4.6 Evolucion: el origen de los programas 

La manera en que el BASIC te permite construir programas a medida 
que vas avanzando y comprobando, es su FACULTAD mas conveniente. 
Los puristas y teoricos arguyen que esta comodidad conduce a tecnicas 
de programacion "sin estructurar" y poco sistematizadas. Abordando los 
programas en cuanto se te ocurren las ideas; mientras que los realistas 
consideran que es la mejor manera de retener el interes de los estudiantes, 
que asf puede ir comprobando el progreso que alcanza en cada etapa. 

Tomemos otra vez nuestro ejemplo anterior y afiadamos ahora la linea 
70 en que mandamos al ordenador que haga una pausa haciendo 900 veces 
nada (con lo que tarda lo suficiente como para que puedas leer el texto 
en imagen), y que despues de un "salto" VAYA a la linea 5. 

5 CLS 

10 INPUT "CUftL ES TU SALARIO" 

20 IF SALARIO < 10000 THEN GOTO 30 ELSE 40 

30 PRINT "EXIGE UN AUMENTO":END 

40 PRINT "EXIGE UN COCHE GRANDE " 

50 IF SALARIO > 30000 THEN PRINT 

"sobomate al contable" 
£0 IF SALARIO > 25000 THEN PRINT 

".... y prestame uno de los grandes" 
70 for n=l to 900: next n:goto 5 
run 

Observa que esta nueva linea, y las otras li'neas de programa que anadimos, 
las tecleamos en minuscula para recordarte que el BASIC AMSTRAD 
las acepta de las dos maneras y al mismo tiempo reconoce la diferencia 
entre el nombre de una variable, una constante literal, y una palabra 
clave. Como cuando ha concluido una ronda, le mandamos que vaya a 
la linea 5, no es posible que este programa termine nunca; asf que pulsa 
ESC por dos veces para escapar de el, y luego lista el programa para 
comprobar que el ordenador ha convertido todas las palabras clave a 
MAYUSCULAS, pero deja los nombres de las variables como n en 
minusculas. 

La linea 70 presenta lo que llamamos un BUCLE DE DEMORA, ya que 
el ordenador se limita a hacer variar n de 1 a 900 antes de ejecutar la 
tercera instruccion de esa linea: GOTO 5. Asf el programa "recicla" sin 
acabar nunca. Somos reiterativos, como el programa. Pero ahora te 
recordamos que pulsando ESC una sola vez, detienes la ejecucion del 
programa, pero pulsandola de nuevo es cuando se INTERRUMPE 
definitivamente y vuelves al modo de comandos, sin perder en absoluto 
el programa que tienes en memoria. 



Capftulo 4 Pagina 6 



Mas BASIC 



Lo mas probable, a no ser que ESCAPES precisamente mientras el ordenador 
esta en el bucle de demora de la linea 70, el programa se interrumpira 
inmediatamente, dado que lo habras pillado ejecutando la instruccion 
10 en que esta esperando que le teclees un dato. En todo caso, siempre 
te mostrara el numero de linea vigente en el momento en que se vio 
interrumpido, y en este caso, lo probable es que el mensaje sea 

Break in 10 

Pero si lo pillaras haciendo el bucle de demora, el mensaje despues de 
la segunda pulsacion de la tecla ESC, es: 

Break in 70 

Si escapas durante ese bucle de demora de la linea 70, habras SUSPENDIDO 
la operacion que puede ser REANUDADA pulsando simplemente 'tualquier 
tecla". Pero si has llegado a la interrupcion del programa, tambien puedes 
hacer que SIGA a partir del punto en que estaba, si tecleas: 

CONT 

Y el programa continuara a partir de la linea en que se le interrumpio. 

Hagas lo que hagas con la tecla ESC no perderas el programa almacenado 
en memoria, a no ser que especfficamente mandes la ordenador que 
"desnude" su memoria usando el comando NEW, (vas a empezar uno NUEVO) 
o le des un comando de restauracion a las condiciones iniciales manteniendo 
pulsadas simultaneamente las teclas CTRL, SHIFT y ESC. 

Con el CPC464 no hay necesidad de poner una "red de seguridad'] para 
aquellos que inadvertidamente RESTAURAN la maquina. La accion de 
quitar el programa existente en memoria debe hacerse deliberadamente. 
GUARDA todo en el cassette en cuanto tengas duda de si lo vas a querer 
usar posteriormente o no. 



4.7 Mas sobre variables numericas y literales 

La esencia de la programacion es el concepto de variable. Si el ordenador 
tratara exclusivamente con informaciones fijas, seria simplemente una 
ayuda electronica al tecleado. Recuerda que si cualquier parte de una 
expresion matematica puede ser una variable, el resultado es 
ineludiblemente un dato asignado a una variable. 

Las variables tienen tres atributos (cosas que se le pueden atribuir). Un 
nombre, una clase y una "organizacion". Los nombres ya los hemos 
comentado antes (4.1), las clases de variables son opcionales, asi' que 
podemos definir una variable de acuerdo con las reglas de la seccion 
3.4 en la forma siguiente: 

<nombre>[< marca de clase>] 



Capftulo 4 Pagina 7. 



Mas BASIC 



Las marcas de clase son: 

% para variables numericas enteras, en que todo lo que pueda aparecer 
a la derecha del punto decimal (de la coma que se usa en muchos 
pafses) se desprecia. Las variables enteras ocupan menos espacio 
en memoria, por lo que en aquellos programas que no exijan manejar 
numeros con parte fraccionaria se ejecutaran mas rapidamente si 
las variables se DEFinen como enteros. El comando DEFINT estipula 
que determinados nombres de variables corresponden a variables 
enteras. La gama de valores que puede tener una variable entera 
es de -32768 a +32767. 

! para numeros reales, con su parte entera y con su parte fraccionaria 
separadas por el punto decimal. Las variables numericas estan 
prescritas para ser reales desde el momento en que pones en marcha 
el ordenador, asf que si omites especificar lo contrario, se consideran 
reales lleven detras o no el signo de admiracion. La gama de valores- 
que puede tener una variable numerica real es de 2.9E-39 a 1.7E+38. 

$ indica una variable literal, cuyo valor es por tanto un litero, o 

constante literal. Y un litero es simplemente una "sarta" de caracteres 
cualesquiera. Lo importante es que el ordenador los trata 
LITERALMENTE (tal y como los escribes, al pie de la letra, etc.) 
y los reconoce porque estan encerrados entre comillas. Por ejemplo: 

NOMBRE*="ALVARO GARCIA" 

Usando esto en nuestro ejemplo evolutivo, anade la lfnea 6 y corrige 
la lfnea 60: 

6 INPUT "Como te 1 lamas" ;NOMBRE* 
60 IF SALARIO > 25000 THEN PRINT 

".... y prestame urto de los grandes" ;N0MBRE* 
run 

Observa que hemos incluido un espacio en bianco al final del mensaje 
LITERAL a exponer en la lfnea 60 cuando se cumple la condicion previa; 
y lo hacemos para evitar que se apelotone con el valor de la variable 
nombre$, y si no ensaya no poniendolo y asf nos creeras. El signo ; al 
final de una instruccion PRINT o de una INPUT, suprime el envfo 
automatico por parte del ordenador del caracter de retorno de carro 
al final de cada una de esas instrucciones. Con el punto y coma se queda 
el cursor donde esta, y no pasa a la lfnea siguiente. 

Tambien podemos practicar con variables enteras si anadimos la lfnea 
61. Simplemente tecleala, y luego comprueba que el ordenador sigue 
teniendo organizado su programa. Listalo y veras: 



Capftulo ^ Pagina 8 



Mas BASIC 



5 CLS 

6 INPUT "C6mo te 1 lamas" ;NOMB RE* 

10 INPUT "CUAL ES TU SALARIO" ;SALARIO 
20 IF SALARIO < 10000 THEN GOTO 30 ELSE 40 
30 PRINT "EXIGE UN AUMENTO" :END 
40 PRINT "EXIGE UN COCHE GRANDE" 
50 IF SALARIO > 30000 THEN PRINT 
"sobornate al contable" 

60 IF SALARIO > 25000 THEN PRINT 

".... y prestame umo de los grandes" ;NOMBRE* 

61 TARIFA. DIARIA=SALARI0/365 

PRINT "dispones de pts" ;TARIFA. DIARIA; " cada dla" 
70 FOR n=l TO 5000: NEXT n:GOTO 5 
run 

Observa que hemos aprovechado para incrementar el numero de rondas 
en el bucle de demora a 5000, ya que ahora exponemos mas texto en 
pantalla. El resultado del salario por dia, no aparece muy presentable 
y podriamos mejor REDONDEARLO para que fuera un numero entero. 
Anade la linea 62... 

62 REDONDEO*=TARIFA. DIARIA: PRINT 

"o bien pts" ;RED0NDE0%; "si no re importan 
los centiiYios" 
run 

Observa que siempre debes resenar la marca de clase %, para referirte 
a esa variable entera, ya que puedes tener una variable real con el mismo 
nombre y sin que se confundan por ser de clase diferente. Observa tambien 
como el ordenador "recorta" las lineas que son demasiado largas como 
para caber en un solo renglon y continua en el renglon siguiente (y lo 
hace en los tres modos de imagen). Usa el modo 2 (80 columnas) para 
escribir programas largos o con lfneas largas, dado que es mucho mas 
facil leer programas sin tener que volver atras cuando se llega al final 
de una linea. 

Para pasar al modo 2, ya sabes que simplemente tecleas: 
MODE 2 

Y para producir texto en negro sobre fondo bianco, lo que es bastante 
mas legible en el monitor CTM6^0, teclea directamente los siguientes 
tres comandos: 

INK 1,0 
INK 0, 13 
BORDER 13 

Y ahora al listar veras el efecto. 



Capftulo * Pagina 9. 



Mas BASIC 



4.8 Conformando la imagen 

Parte de la evolucion en tu programa es el proceso de "pasarlo a limpio" 
de vez en cuando. La primera cosa que podemos hacer para que quede 
"bien arregladito" es RENUMERAR todas las lineas con multiplos de 10, 
usando el comando RENUM. Basta que cuando veas el aviso de 
PREPARADO (Ready), teclees: 

RENUM 

Y al listarlo de nuevo veras: 

10 CLS 

20 INPUT "Cbmo te 1 lamas" ;N0MBRE* 

30 INPUT "CUAL ES TU SALARIO" ;SALARI0 

40 IF SALARIO < 10000 THEN SOTO 50 ELSE 60 

50 PRINT "EXIBE UN AUMENTO":END 

60 PRINT "EXIGE UN COCHE BRANDE" 

70 IF SALARIO > 30000 THEN PRINT 

"sobornate al contable" 
80 IF SALARIO > 25000 THEN PRINT 

".... y prestame uno de los grandes" 
90 TARIFA. DIARIA=SALARI0/365: PRINT 

"dispones de pts" ; TARIFA. DIARIA; " cada dla" 
100 REDONDEO%=TARIFA. DIARIA: PRINT 

"o bien pts" ; REDONDEO*; " si no te importan 
los centimos" 
110 FOR n=l to 5000s NEXT n:GOTO 10 



Y observa que no solo nan quedado REDONDOS los numeros de linea, 
sino que tambien se han cambiado adecuadamente los numeros de linea 
que se citan dentro de las instrucciones (v.g. GOTO 50). Claro que no 
tendria mucha utilidad si el BASIC no mantuviera registrados todos los 
numeros de linea mencionados en un programa y los actualizara todos 
simultaneamente (cosa que en otros ordenadores...) 

Vamos ahora a "maquillar" la imagen que el programa presenta en pantalla, 
y antes de ello vamos primeramente a hacer PASIVO el bucle de demora 
de la linea 110; para lo cual basta que convirtamos ese comando ACTIVO 
en un mero comentario o MEMOrandum, usando precisamente al principio 
el comando REM: 

110 REM: FOR n =l to 5000: NEXT n=S0T0 10 

Insertando el comando REM: al principio de esa linea, hacemos que el 
resto sea meramente algo que el ordenador nos "remorara" cada vez que 
listemos, porque continua guardando esa linea de programa en memoria, 
pero no interviene en absoluto en la ejecucion. En este caso, conseguimos 
asf que no haya ninguna demora ni se vaya de un salto a la linea 10, 
sino que termine la ejecucion del programa y quede en pantalla lo que 
el programa haya expuesto. Ahora teclea la linea: 
15 mode 1 

Capitulo 4 Pagina 10 ■ 



Mas BASIC 



Con ello, fijamos el modo de imagen sin tener en cuenta el modo en 
que esta cuando le pedimos que ejecute el programa: la li'nea 15 fijara 
el modo 1 en cuanto empiece a ejecutar. Como el comando MODE 
automaticamente al fijar el MODO, tambien LIMPIA la pantalla, resulta 
que la li'nea 10 que teniamos es ahora redundante, pero de todas formas 
la podemos dejar. 

Ahora, EJECUTA el programa y vete respondiendo con los datos necesarios: 

Como te llamas? fllvaro 

CUAL ES TU SOLAR 10? 4000 

EXI6E UN COCHE GRANDE 

y sobomate al contable 

dispones de pts 109.589041 cada dia 

o bien pts 110 

si no te import an los centimos 

Ready 



No es ni presentable ni elegante, especialmente al resultar cortadas 
algunas frases. Bueno, pues anade... 

25 PRINT: PRINT 
85 PRINT 

y preparate a corregir la li'nea 10, pasando al modo de edicion mediante 
EDIT 100, y haz que sea: 

100 REDONDEOX=TARIFA.DIARIA:PRINT 
"o bien pts";RED0NDE0*;" si no te": PRINT 
"importan los centimos" 

Ejecutalo de nuevo y comprobaras que todo esta mas "adecentado". Anade 
tambien la li'nea 120 para que el mensaje de PREP AR ADO (Ready) 
aparezca bastante mas abajo: 

120 ?:?:?:?:? 

Y luego ejecuta otra vez el programa para comprobarlo. O mejor, suprime 
ese mensaje al mismo tiempo que aprovechas para hacer que comience 
a dar rondas y rondas y rondas: 

120 GOTO 120 

Una vez que hayas ejecutado esta version, ya saber que la unica manera 
es E5CAPAR, usando ESC. Recuerda que el signo ? es un medio rapido 
de dar el comando PRINT. Ahora lista para comprobar el resultado que 
tenemos: 



Capftulo 4 Pagina 11 



Mas BASIC 



10 CLS 

15 MODE 1 

20 INPUT "Como te llamas" ;N0MBRE* 

25 PRINT: PRINT 

30 INPUT "CUAL ES TU SALARIO" ;SALARI0 

40 IF SALARIO < 10000 THEN SOTO 50 ELSE 60 

50 PRINT "EXIBE UN AUMENTO": END 

60 PRINT "EXISE UN COCHE GRANDE" 

70 IF SALARIO > 30000 THEN PRINT 

"so bo mate al contable" 
80 IF SALARIO > 25000 THEN PRINT 

".... y prestame uno de los grandes" ;NOMBRE* 
85 PRINT 
90 TARIFA.DIARIA=SALARI0/365: PRINT 

"dispones de pts" ;TARIFA. DIARIA; " cada dia" 
100 REDONDEOS=TARIFA.DIARIA: PRINT 

"o bien pts";REDONDEO%;" si no te": PRINT 

"importan los centimos" 
110 REM:FOR n=l to 5000: NEXT n:GOTO 10 
120 GOTO 120 



4.9 Colocando el cursor 

Hasta ahora, la mayorfa de los comandos BASIC los hemos escrito usando 
la sintaxis del BASIC primitivo que puede ser comprendida por la mayoria 
de las maquinas que poseen alguan clase de "interpretador" de BASIC. 
El comando LOCATE es una de las potentes facultades del BASIC 
AMSTRAD (y esta tambien la tienen algunos otros) que te permite 
UBICAR el cursor de texto en cualquier posicion de la pantalla: 

LOCATE 10,4 

coloca el cursor de textos en la decima columna de la cuarta linea, 

contando desde la parte superior de la pantalla. Si intentas darlo como 

un comando directo, el cursor si' se ubicara en las coordenadas mencionadas, 

pero el aviso Ready hara que comience una nueva linea, por lo que al 

fin y al cabo, el cursor terminara como siempre en la primera columna 

de la linea siguiente. Asf que mejor anadelo como linea del programa 

16: 

16 LOCATE 10,4 
run 

y veras como se baja la primera solicitud de datos y como se "sangra" 
o "indenta" (se mete para adentro) de acuerdo con lo que le has mandado. 
La siguiente linea continua como antes (alineada a la izquierda, es como 
llamamos) dado que la linea 25 lo que hace es meter un par de renglones 
en bianco. Pulsa ESC por dos veces para terminar y luego anade la linea 
26: 

26 LOCATE 10,4 
Capftulo 4 Pagina 12 



Mas BASIC 



Al ejecutar el programa, observaras que la segunda solicitud de dato 
el mensaje se escribe encima ("re-escribe") del primero. Puedes ahora 
continuar colocando el texto exactamente donde quieres que aparezca 
en la pantalla, y.para ello te sera de mucha utilidad usar las RETICULAS 
DE PANTALLA que con coordenadas horizontales y verticales te 
presentamos en el Apendice VI. 

Si lo que quieres es que todos los mensajes y preguntas aparezcan en 
la misma li'nea, una de las cosas que puedes hacer es preceder cada 
instruccion de ubicacion del cursor con una instruccion de LIMPIE 
PANTALLA, para evitar confusion con los restos que pueda haber de 
la ultima exposicion. 

Observa que las coordenadas empleadas en el comando LOCATE pueden 
venir dadas como valores de variables numericas enteras, y generar esos 
valores dentro del programa. Puedes practicar por tu cuenta, pero 
volveremos sobre el tema. 

Ya hemos gastado lo suficiente por ahora el programa de salario, asi' 
que el siguiente ejemplo se basara en un tema diferente. Si quieres 
conservar lo que has construido hasta ahora, haz que el ordenador 
GUARDE el programa en cassette con los comandos que ya conoces del 
capitulo 2. Puede incluso que te haya empezado a gustar el programa 
a estas alturas, y que desees de vez en cuando consultarlo o ampliarlo 
con los comandos que te iremos presentando. 



*.10 SI...PUES 

Su uso es bastante inmediato y patente. IF <expresion logica> THEN 
<serie de comandos>. Y con "expresion logica" hacemos referencia a una 
condicion o PREMISA cuyo resultado es de la clase logica: cierto o falso. 

Con la instruccion IF indicamos al ordenador que evalue una expresion 
logica para comprobar si es cierta, y si lo THEN ejecute la serie de 
comandos. Esta operacion puede incorporarse en un programa para hacer 
bucles que pueden ser simplemente REPETITIVOS o RECURSIVOS (que 
ya comentaremos). Restaura el ordenador pulsando CTRL, SHIFT y ESC 
y teclea: 

1 MODE 1 

10 AMSTRAD=0 

20 PRINT "AMSTRAD CPC464 colour personal 

computer" 
30 AMSTRAD ■ AMSTRAD +1 
40 IF AMSTRAD <10 GOTO 20 



Capitulo * Pagina 13- 



Mas BASIC 



Ejecutalo y veras como se repite la instruccion de exposicion en pantalla 
de la linea 20 hasta que se "cumple" la condicion o premisa de la linea 
40. Por lo tanto con la linea 40 le obligamos a dar un "salto hacia atras" 
a la linea 20. Observa tambien el significado de la variable llamada 
AMSTRAD que va cambiando de valor cada vez que el ordenador efectua 
una ronda de ese bucle, por lo que la podemos asimilar a un "contador 
de vueltas". 

Si quieres ver mas exactamente lo que esta sucediendo con el valor de 
AMSTRAD durante este programa, puedes anadir la siguiente linea de 
programa: 

35 LOCATE 1,20: PRINT AMSTRAD : LOCATE 1 7 AMSTRAD 
run 

Y si ha ido demasiado deprisa, lo puedes hacer mas lento con un bucle 
de demora: 

36 for n=l to 500:next 

Y ahora anadir un toque de color, (si tienes la opcion CTM640) incluyendo: 
34 BORDER AMSTRAD 

Esta linea va cambiando el color del BORDE en justa correspondencia 
con los cambios de valor de la variable AMSTRAD. Lista otra vez el 
programa: 

1 MODE 1 

10 AMSTRAD=0 

20 PRINT "AMSTRAD CPC464 colour personal 

computer" 
30 AMSTRAD - AMSTRAD +1 

34 BORDER AMSTRAD 

35 LOCATE 1,20:PRINT AMSTRAD: LOCATE 1, AMSTRAD 

36 FOR n=l TO 500: NEXT 

40 IF AMSTRAD <10 GOTO 20 
run 

Y como no tenemos duda de que todos quereis ver todos los colores 
disponibles en el CPC464, cambia la linea 40, para que sea: 

40 IF AMSTRAD <26 GOTO 20 

Ejecuta el programa y veras todos los colores disponibles, comenzando 
con el mas oscuro y terminando con el bianco brillante. Puedes hacer 
mas aclaratorio el mensaje que expones en la linea 35, si la editas 
(corriges) para que sea: 



Capftulo k Pagina 14- 



Mas BASIC 



35 LOCATE 1,20: PRINT "Borde" ;AMSTRflD: 

LOCATE 1,AMSTRAD 
run 

Y ya que estamos tratando de los diferentes BORDES (y puede que te 
guste mas la palabra MARCO), cuando el programa haya concluido y 
el ordenador este PREPARADO para aceptar tus comandos, teclea: 

BORDER 14,6 

Y veras como el borde o marco "parpadea" entre los colores 14 y 6. 
Tendras que esperar hasta el siguiente capitulo para que te demos mas 
explicaciones sobre la manera en que funcionan los graficos y los colores. 
Pero para redondear esta seccion, teclea el comando: 

ink 1, 18, 16 

y para finalizar, el comando: 
speed ink 1,5 

Veras que la CADENCIA (velocidad) con que el CPC464 cambia la TINTA 
que usa, es como para ir a buscarse una aspirina y restaurar las condiciones 
iniciales del ordenador. Recuerda hacer que GUARDE el programa en 
la cinta, antes de que se RESTAURE a si' mismo, si quieres impresionar 
a tus amigos. 



4.11 Tablas 

Algunos programas requieren un monton de variables para poder "alojar" 
los datos que el programa procesa. Y se puede hacer, pero a menudo 
es dificil seguirles la pista a todas esas variables que estan usando para 
almacenar informacion. Afortunadamente, BASIC ha previsto esta situacion 
y la ha resuelto usando lo que denominamos TABLAS. Tambien lo solemos 
llamar ringlas, porque es una palabra mas cercana a la palabra inglesa 
ARRAYS, que responde al concepto de un conjunto de cosas dispuestas 
segun una REGLA determinada. 

^Pero que es una tabla? Te lo puedes preguntar y llegar a la conclusion 
de que en esencia, es un grupo de variables homogeneas con un determinado 
arreglo entre ellas, que nos permite seleccionar cada una de ellas mediante 
un nombre comun y uno o varios numeros ordinales especificos. 

La mejor manera de terminar de comprenderlo es tomar un ejemplo. 
Considera un programa que Simula un juego de cartas, y que por tanto 
tenemos que tratar con cartas seleccionadas al azar. 



■Capitulo 4 Pagina 15- 



Mas BASIC 



Obviamente no podemos sacar la misma carta dos veces, y por lo tanto 
debemos mantener un REGISTRO de lo que ha pasado con cada carta 
individual. Una manera simple de hacerlo seria asignar a cada carta una 
variable con nombre distinto, y luego dar como valor de la variable uno 
entre dos valores; por ejemplo, un 1 para indicar que esa carta ya ha 
salido, y un para indicar que todavia esta en el monton. 

Evidentemente, eso nos llevaria a usar 52 variables aisladas y de nombre 
diferente (a no ser que estes jugando con cartas trucadas) y ademas, 
tendrfas que recordar cual es el nombre de la variable que has asociado 
a cada carta. Es un caso ideal para ver como entran en accion las 
TABLAS o ringlas (lo que prefieras decir). 

Primeramente, necesitamos dar a este conjunto de variables un nombre 
comun, y vamos a darle por ejemplo el de CARTA. Ahora, para poder 
seleccionar una carta especffica -un elemento de esa tabla- podemos 
simplemente darle un numero. Asi', podriamos usar los primeros 13 numeros 
para definir el palo de OROS, los -siguientes 13 para el de COP AS, y 
asi' sucesivamente. Con ello nos quedaria que CARTA(6) seria el 6 de 
oros, mientras que CARTA(ll) seria la sota y CARTA(13) seria el rey, 
y CARTA(l^) el as de copas, y asf sucesivamente. Bastante sencillo, 
parece. 

Desafortunadamente, no podemos empezar planteandonoslo asi' y llevar 
a cabo el programa directamente, sino que tenemos que ser justos con 
el ordenador y avisarle para que OCUPE un espacio en memoria reservado 
para este grupo de variables. El comando DIM se usa para que sepa la 
dimension del espacio que queremos que ocupe. Es decir, este comando 
DIM fija las dimensiones de la tabla y en nuestro ejemplo, con la baraja 
que hemos dicho, necesitamos ocupar espacio para alojar las 52 variables 
que forman parte de la tabla. Por tanto, tendri'amos que teclear el comando: 

DIM CARTA <52) 

Y a pesar que le decimos al ordenador que "ocupe" espacio en memoria 
para 52 variables, es una de las situaciones en que no nos hace exactamente 
lo que le hemos dicho; ya que realmente reserva espacio para 53 elementos. 
Pero ya veras que lo hace por nuestra conveniencia. (El espacio de mas 
que ocupa es para la CARTA que corresponde al numero 0). 

Ahora ya podemos empezar a escribir la estructura de un programa, o 
mejor un PARRAFO del programa que sea el que extrae una carta del 
monton: 

10 DIM CARTA (52) 
20 FOR X - 1 TO 52 
30 LET CARTA (X)=0 
40 NEXT X 



■Capftulo k Pagina 16- 



• 



• 

• 
• 



# 



Mas BASIC 



1000 AZAR - RND(52)+1 

1010 IF CARTA (AZAR) ■ 1 THEN GOTO 1000 

1020 CARTA (AZAR) = 1 

1030 RETURN 

Observa que en el parrafo inicial, en la primera li'nea, ponemos la 
instruccion DIM. Y es debido a que siempre necesitamos comunicar al 
ordenador las dimensiones de la tabla que vamos a usar; y ademas, hay 
que tener cuidado si posteriormente queremos cambiarle las dimensiones, 
es preciso que antes le mandemos que LIBRE el espacio ocupado, mediante 
el comando ERASE, como ya veremos mas adelante. 

En las li'neas 20 a 40 hacemos que todos los valores de la tabla sean 0. 
Luego en el PARRAFO que comienza en la li'nea 1000, hacemos que elija 
una carta al AZAR (que eso es lo que hace la funcion RND(52), y que 
despues de elegirla, compruebe que no habi'a sido sacada anteriormente. 

Y si lo ha sido, el valor ya seria 1, por lo que le mandamos que VAYA 
a sacar otracarta al azar, y asi' continuara hasta que encuentre una que 
todavia permanezca en el monton. Cuando ya la encuentra, hacemos que 
cambie el valor correspondiente del elemento de la tabla para que nos 
indique que ahora ya ha sido sacada, y luego le mandamos que VUELVA, 
y eso lo hace el comando RETURN, al punto donde le corresponda. 

Es bastante natural que el manejo de tablas no este restringido a aquellas 
que solo tienen una dimension, (en cuyo caso tambien se les suele llamar 
RISTRAS), sino que pueda ampliarse al numero de dimensiones que 
deseemos. Y se logra simplemente anadiendo mas numeros de "seleccion" 
al dar el nombre de la variable. Por ejemplo, una tabla de 1000 elementos, 
arreglados en 10 grupos de 100, y en que cada subgrupo de 100 esta 
igualmente "arreglado" en 10 grupos de 10, se le comunicar i'a al ordenador 
mediante el comando: 

DIM RINGLAdO, 10, 10) 

Esta tecnica es muy util para dividir grupos enormes en subconjuntos 
o subgrupos mas pequenos y por tanto, mas manejables. En el ejemplo 
de la baraja, nos seria todavia mas facil tener en cuenta los cuatro palos, 
con 13 cartas cada uno, que componen la baraja y haber definido la TABLA 
en la forma: 

DIM CARTA (4, 13) 

Y claro, ahora si como primer SUBINDICE (que asi' llamamos a esos 
numeros) tiene el valor 1, seri'an oros, si tiene el valor 2 seri'an copas, 
si tiene el valor 3 seri'an espadas, y si tiene el valor 4 seri'an bastos. 
Mientras que el segundo de los subfndices nos diri'a exactamente de que 
carta se trata, si es un 1 seria un As, y si es un trece seria un rey. 

Y tambien es logico que podamos usar estas TABLAS no solo para 
variables numericas enteras o reales, sino tambien para variables literales. 

Y supongo que ya habras adivinado que el nombre de la tabla debera 
en ese caso, terminar con el signo $. 

Capftulo ^ Pagina 17 — 



Mas BASIC 



Y supongo tambien que ya estas pensando en aplicaciones de esto para 
llevar las "fichas" de tus compafieros de estudios, la gente que ha reservado 
asiento en el cine, o la coleccion de discos que posees. Y muchas mas. 



4.12 Series de datos 

El comando DATA puede establecerse para resenar en un programa una 
"serie" de DATOS, (y por tanto, son CONSTANTES, y no variables); y 
luego hacer que el ordenador APUNTE, mediante el comando READ, 
cada una de esas CONSTANTES de la serie como valor de las VARIABLES 
que deseemos. Los datos de la serie deben aparecer en una linea de 
programa que comience con la palabra reservada DATA, y separando 
las constantes que intervienen en la serie mediante el signo , . El ordenador 
ira apuntando esos datos cada vez que ejecute un comando READ, en 
forma SECUENCIAL; es decir, prepara un "puntero" que le indique en 
cada momento cual es la ultima constante de la serie que le hemos 
mandado que apunte mediante el comando READ, y cada vez que apunte 
una constante de la serie como valor de la variable mencionada en el 
comando, avanzara el puntero una posicion. 

Veamos un ejemplo, teclea: 

10 READ X, Y, Z 

20 PRINT X;"+";Y;"+";Z;" = ";X+Y"Z 

30 DATA 1,3,5 

Las constantes de la serie pueden ser numericas o literales, o de ambas 
clases. No te preocupes cuando no te quepan en una sola linea, simplemente 
comienza otra linea con la palabra reservada DATA al principio. Cuando 
el ordenador tropieza en el programa con una instruccion READ, interpreta 
que queremos que apunte la constante que le toca como valor de la variable 
mencionada en la instruccion; asi' que no le importa ni donde le hemos 
reflejado ni cuantas instrucciones DATA le hemos dado. El sigue cambiando 
SECUENCIALMENTE su "puntero" interne Lo unico que tienes que 
cerciorarte es que concuerdan perfectamente en numero y en clase, las 
constantes que pones en las instrucciones DATA, con las variables que 
mencionas en las instrucciones READ. 

La unica manera de interrumpir esta asociacion SECUENCIAL de constantes 
a variables, es hacer que el ordenador REPUNTE al sitio que le menciones 
en lugar de al siguiente que le toque. Usas el comando RESTORE, y le 
indicas el sitio a donde quieres que REPUNTE, dandole a continuacion 
un numero de linea de programa, que obviamente debe corresponder al 
de una serie DATA. Y tambien, si no mencionas ningun numero de linea 
a la que quieras que repunte, lo hara a la primera que haya en el programa. 
El ejemplo siguiente ilustra el uso de estos comandos: 



■Capftulo <f Pagina 18- 



Mas BASIC 



10 FOR C =1 TO X 

20 READ X* 

30 PRINT X*;" " • 

40 NEXT C 

50 RESTORE 

60 GOTO 10 

70 DATA HOLA, COMO T TE, ENCUENTRAS, HOY 

Observa que aunque la linea con la serie de constantes esta colocada 
en el ejemplo al final del programa, la puedes numerar y por tanto, 
colocar donde te convenga. 

En el ejemplo, lo unico que hacemos con las constantes es apuntarlas 
sucesivamente como valores de la variable X$ que luego exponemos en 
pantalla. Pero tambien podemos hacer que el ordenador las apunte en 
una variable, y luego hacer con la variable lo que deseemos. Por ejemplo, 
usarla en el comando que hace que el ordenador SUENE, comando SOUND. 
Teclea: 

10 FOR n=l TO 30 

20 READ s 

30 SOUND l,s, 40, 5 

40 NEXT n 

50 DATA 100, 90, 100, 1 10, 120, 1 10, 100, 

60 DATA 130,120,110,0,120,110,100,0 

70 DATA 100,90,100,110,120,110,100,0 

80 DATA 130,0,100,0,120,150 

Y si no oyes nada, y el programa lo has tecleado bien, ajusta el control 
de volumen en el costado derecho del ordenador. 

Para concluir esta breve introduccion al BASIC, aquf hay un programa 
que te per mite jugar a una variante de las "21" con el CPC464. Demuestra 
como se usan muchas de las posibilidades del BASIC, y debieras 
comprenderlo facilmente merced al uso de nombres significativos para 
las variables. Puedes embellecerlo con graficos, y afiadir ambiente con 
sonido; y en general, desarrollar el tema de la evolucion de los mejores 
programas BASIC a partir de un nucleo "humilde". 

El objeto del juego es conseguir acercarte al total de 21, ahadiendo el 
valor facial de las cartas en tu mano, y luego la casa intenta igualarte 
o acercarse todavia mas al total 21, sin sobrepasarlo para no verse 
"quebrado". Despues de teclear la linea 1, usa el comando AUTO para 
que genere automatiamente los numeros de linea. 



.Capftulo 4 Pagina 19- 



Mas BASIC 



1 REM A LAS VEINTIUNA 

10 REM INJCIO 

20 YC=2:CC=2 

30 ASES=0 

40 CACES-0 

50 S=0 

60 T=0 

70 DIM MAN0S*<4) 

80 MAN0S*<1)="TREB0LES" 

90 MAN0S$<2)="C0RAZ0NES" 

100 MAN0S*<3)=" PICAS" 

110 MAN0S*<4)="DIAMANTES" 

120 CLS 

130 DIM CARTA (52) 

140 FOR X=L TO 52 

150 CARTA <X>=0 

160 NEXT X 

170 REM REPARTE DOS NAIPES PARA CADA JUGADOR 

180 LOCATE 10,3) 

190 PRINT "TU";SPC(15)"LA BANCA" 

200 LOCATE 3,5 

210 60SUB 740 

220 S=S+F 

230 IF F=ll THEN ASES=ASES+1 

240 LOCATE 3,6 

250 GOSUB 740 

260 S=S+F 

270 IF F=ll THEN ASES=ASES+1 

280 LOCATE 24,5 

290 GOSUB 740 

300 T=T+F 

310 IF F=U THEN CACES=CACES+1 

320 LOCATE 24,6 

330 GOSUB 740 

340 T=T+F 

350 IF F=ll THEN CACES=CACES+1 

360 REM INPUT SIGUES (P) QUEDAS (Q) 

370 X*=INKEY*:IF X*<)"Q" AND X*<>"P" THEN 370 

380 IF X*="Q" THEN 560 

390 LOCATE 3, YC+5 

400 YC=YC+1 

410 GOSUB 740 

420 S=S+F 

430 IF F=ll THEN ASES=ASES+1 



-Capftulo 4 Pagina 20. 



Mas BASIC 



440 REM PUNTUACION Y OSES 

450 IF S<22 THEN 370 

460 IF ASES - THEN 500 

470 OSES = flSES-1 

480 S=S-10 

490 GOTO 450 

500 LOCATE 12, 19 

510 PRINT "QUIEBRAS" 

520 PRINT: PRINT"OTRA PARTIDA (S/N) " 

530 X*=INKEY*:IF X*<>"S" AND X*<>"N" THEN 530 

540 IF X*="S" THEN RUN 

550 END 

560 IF T>16 THEN GOTO 700 

570 CC=CC+1 

580 LOCATE 24, CC+4 

590 GOSUB 740 

600 T=T+F 

610 IF F=ll THEN CACES=CACES-1 

620 IF T<21 THEN 560 

630 IF CACES = THEN 670 

640 CACE6 = CACES- 1 

650 T=T-10 

660 GOTO 620 

670 LOCATE 12, 19 

680 PRINT "TU GANAS" 

690 GOTO 520 

700 LOCATE 12, 19 

710 IF T<S THEN 680 

720 PRINT"GANA LA BANCA" 

730 GOTO 520 

740 REM REPARTE NAIPE 

750 LET AZAR=INT< RND<1)*52+1> 

760 IF CARTA <AZAR)=1 THEN GOTO 750 

770 CARTA (AZAR)=1 

780 F=AZAR-13*INT(AZAR/13> 

790 IF F=0 THEN F=13 

800 IF F=l OR F> 10 THEN GOTO 850 

810 PRINT F; " DE "; 

820 IF F> 10 THEN F=10 

830 PRINT MAN0S*(INT((AZAR-1)/13)+1) 

840 RETURN 

850 IF F=U THEN PRINT "JOT A DE "; 

860 IF F=12 THEN PRINT "DAM A DE " ; 

870 IF F=13 THEN PRINT "REY DE " ; 

880 IF FOl THEN GOTO 820 

890 F=ll 

900 PRINT "AG DE" 

910 GOTO 830 



Capftulo * Pagina 21- 



Mas BASIC 



Pulsa S si "sigues" (y tu siguiente carta se sumara a las que ya tengas), 
o Q si "quedas" y juega la casa. No pretendemos que sea la ultima palabra 
en juegos de cartas con el CPC464, pero te proporciona el hueso sobre 
el que puedes anadir carne en forma de graficos y sonido. 

4.13 Expresiones Logicas 

Una de las diferencias mayores entre una calculadora y una computadora, 
es la habilidad del ordenador para manejar operaciones logicas en 
instrucciones condicionales, tal como SI...PUES. Para hacer eso, los 
operadores logicos tratan los valores sobre los que operan de acuerdo 
a su equivalente en el sistema de numeracion binario; y ademas, lo hacen 
tomando individualmente los bitos HOMOLOGOS de cada operando y 
lo tratan por separado. Aunque la descripcion y utilizacion es 
completamente LOGICA (pero de logica matematica), es bastante dificil 
describirla en terminos simples sin recurrir a las definiciones precisas. 
Pero vamos a intentarlo. (y el Apendice III ayudara). 

Las dos partes de una expresion logica, se conocen como operandos y 
el signo de operacion es normalmente una breve palabra que llamamos 
operador logico. Por lo tanto, la sintaxis de una expresion logica es 

<operando>[<operador logico><operando> ] 

y el operando puede ser a su vez cualquier <numeral entero , cualquier 
<expresion relacional> , o cualquier <expresion logical >. 

Y te resaltamos que el numeral entero debe estar dentro de la gama 
permitida de valores, y en caso contrario se produce un Error 6. 

Esto que llamamos operaciones logicales, esta como veremos, estrechamente 
vinculado a esas palabras que en la vida real nos sirven para conectar 
frases condicionales, como por ejemplo en esta: 

Si hace sol y si nieva, o si llueve, ire al museo. 

Pero es algo mas complicado porque el ordenador solo nos interpretara 
correctamente si no hay ambiguedades. 

Los operadores logicos segun el orden de PRIORIDAD en la ejecucion, 
son simbolizados en BASIC con las palabras clave AND, OR y XOR. 

Y los resultados de una operacion con dos operandos de un solo bit, es 
como sigue: 

AND Da como resultado a no ser que ambos operandos sean 1. 
OR Da como resultado 1 a no ser que ambos operandos sean 0. 

XOR Da como resultado 1 a no ser que ambos operandos sean iguales 

Representando con 1 y los dos si'mbolos de un sistema de numeracion 
binario. 



•Capftulo 4 Pagina 22- 



Mas BASIC ■— — 

El operador AND es el mas comunmente empleado. 
PRINT 10 AND 10 

Y el ordenador te respondera 10. 
PRINT 10 AND 12 

Y el ordenador te respondera 8. 
PRINT 10 AND 1000 

Y te respondera de nuevo 8. 

Es debido a que los numeros 10 y 1000 tienen como equivalente en el 
sistema de numeracion binaria (Apendice II), respectivamente los siguientes: 

1010 
1111101000 

Y la operacion AND (tambien llamada YLIACION) va examinando el par 
de bits homologos cada vez y solo coloca en la posicion homologa del 
resultado un 1 cuando ambos operandos son 1. Por lo tanto, el resultado 
es: 

0000001000 

...cuyo equivalente en el sistema decimal es precisamente 8, como nos 
decia el ordenador. Pero en BASIC, es mas normal usar ese operador 
AND para detectar si se cumplen simultaneamente dos condiciones (...Y 
SI...). Aqui' hay un programa autoexplicativo: 

10 CLS: INPUT "Numero del dia";dia 
20 INPUT "Numero del mes";mes 
30 IF dia=25 AND mes=12 GOTO 50 
40 GOTO 10 
50 PRINT "iFeliz Navidad!" 

La operacion OR (tambien llamada OLIACION) opera bit a bit de la misma 
manera, pero ahora el resultado es 1, salvo que ambos operandos sean 
0. Usando la misma pareja de numeros que antes, tendriamos: 

PRINT 1000 OR 10 
1002 

Y haciendo la operacion hallando el equivalente binario, tendriamos: 

1010 
1111101000 

Que nos da como respuesta: 

1111100010 

que correspone en el sistema decimal a nuestro resultado de 1002. 
— — — Capftulo 4 Pagina 23— 



Mas BASIC 



Todo eso signifies que podemos usar el operador OR para detectar si 
se cumple una u otra de dos condiciones, incluyendo el caso de que se 
cumplan las dos al mismo tiempo. Y aquf hay un programa ejemplo: 

10 CLS: 

20 INPUT "Numero del mes" ;mes 

30 IF mes=12 OR mes=l OR MES=2 GOTO 50 

40 CLS: GOTO 10 

50 PRINT "Debemos estar en invierno" 

Y tambien existe el operador logico NOT (tambien llamado NEGACION) 
que opera unicamente con un operando) (operadores "monadicos") y que 
en el caso de que el operando tenga un solo bit, podemos decir que el 
resultado es cuando el operando es 1 y viceversa. Se emplea obviamente 
para comprobar que NO se cumple una determinada condicion. Como 
en el programa: 

10 CLS 

20 INPUT "Numero del mes";mes 

30 IF N0T(mes=6 OR mes=7 OR mes=8) goto 50 

40 CLS: GOTO 10 

50 PRINT "iNo puede ser verano!" 

La consideracion final mas importante es que podemos combinar un cierto 
numero de condiciones logicas y con varios operadores logicos, como 
te mostramos en este ejemplo: 

10 CLS: INPUT "Numero del dia";dia 
20 INPUT "Numero del mes" ;mes 

30 IF N0T(mes=12 OR mes=l) AND dia=29 GOTO 50 
40 CLS: GOTO 10 

50 PRINT "Ni es Diciembre, ni es Enero, y puede que sea 
un ano bisiesto" 

Ahora bien, ten en cuenta que el resultado de una expresion de relacion 
es tambien un numero que corresponde a o a -1. Y ademas, la 
representacion en el sistema binario del numero decimal 0, es que todos 
los bits sean 0, mientras que la del numero -1 es que todos los bit sean 
1. El resultado de una operacion logica con dos" operandos que sean 
expresiones de relacion, nos producira como resultado el numero decimal 
-1 (cierto) o el numero decimal (falso). 

Comprueba esto, anadiendo la linea 60 y 70 al programa anterior: 

60 PRINT N0T(mes=12 OR mes=l) 
70 PRINT (mes=12 OR mes=l) 



Capftulo 4 Pagina 2^- 



Mas BASIC 



Y cuando ejecutes el programa, teclea 29 como el dia, y digamos, 5 como 
el mes, con lo que se producira la respuesta segun la linea 50, y los valores 
reales que son resultado de las expresiones logicas de las lineas 60 y 
70, apareceran en las lineas mas abajo. 

Finalmente, el operador XOR (igual que el operador OR pero eXcluyendo 
el caso en que se cumplen las dos condiciones) produce el resultado 
CIERTO siempre que ambos argumentos sean distintos. La tabla resumen 
de todas estas combinaciones, es lo que se llama una TABLA DE LA 
VERDAD; que es una forma conveniente de ilustrar lo que sucede en 
la operacion logica cuando los operandos solo tienen un bit. 



Operando A 
Operando B 


1 




1 


1 
1 






Resultado AND 
Resultado OR 
Resultado XOR 



1 
1 



1 
1 


1 
1 










-Capftulo 4 Pagina 25- 



GRAFICOS 



5. Lo primordial de Graf icos 



Siguiendo tu camino con los colores y graficos del CPC464. 

Temas comentados en este capftulo: 

* Modos de imagen y motas 

* Los colores 

* Tinta, Papel y Pluma 

* Dibujando lineas 

* Ventanas o vinetas 

5.1 Peculiaridades de la maquina 

La descripcion y aplicacion del BASIC AMSTRAD hasta ahora han estado 
basadas en especificaciones standard en la industria. La mayoria de las 
operaciones puramente aritmeticas solo necesitan ligeros ajustes al pasar 
de un dialecto de BASIC a otro; sin embargo, los comandos BASIC que 
controlan los graficos (y la ubicacion del cursor de textos) son mas 
especi'ficos de cada maquina, y deben ser comprendidos cuidadosamente 
para sacar el mayor provecho de tu microordenador. 

Como siempre, las palabras clave del BASIC las presentaremos en negrita 
para destacarlas, y tambien estan relacionadas alfabeticamente con una 
breve descripcion en el capi'tulo 8. 

5.1.1 Seleccion de colores 

El NEGRO (la ausencia de color o iluminacion en la pantalla) se considera 
como un color para el proposito de describir las posibilidades de colores 
del CPC464 y los diversos comandos asociados a esas posibilidades. 

El BORDE puede fijarse a "cualquier par de colores" sin tener en cuenta 
el modo de imagen, y no se restaura a las condiciones iniciales cuando 
se dicta al ordenador el comando MODE. Puede hacerse que parpadee 
o palpite entre dos colores, o que muestre un color de manera permanente. 

El numero de TINTAS disponibles, solo puede aprovecharse 
simultaneamente dependiendo del MODO DE IMAGEN elegido. Tambien 
cada TINTA puede fijarse para que palpite con una pareja de colores; 
o que corresponda a un solo color. El PAPEL y la PLUMA usada en textos 
y la PLUMA usada en graficos, puede estipularse para que corresponda 
a una de las tintas disponibles. 

; Capftulo 5 Pagina 1 — 



GRAFICOS 



5.1.2 Las relaciones entre PLUM A, PAPEL y TINTA 

Excepto cuando se especifica el parpadeo entre dos colores, hay dos 
TINTAS que afectan al texto mostrado en la pantalla: una de esas TINTAS 
determina el color con que escribe la PLUMA; mientras que la otra 
determina el color con que se da el "tinte" al PAPEL. 

NB: El numero asociado con el comando PAPER es la INK declarada 
para ese numero, y NO el numero de color enunciado en el Apendice VI. 
Igualmente, el numero asociado con el comando PEN es la INK declarada 
para ese numero, y NO el numero de color del Apendice VI. 

El numero en el comando PAPER esta prescrito que sea cuando se 
omite otra mencion expli'cita de numero. Mientras que el numero del 
comando PEN esta prescrito a 1 para las omisiones. Para hacer que la 
TINTA del PAPEL numero sea "verde", cuyo numero de color es el 
9, tendremos por tanto que teclear: 

INK 0,9 

Igualmente, para estipular que la TINTA de la PLUMA numero 1 sea 
"negro", cuyo numero de color es 0, teclearemos: 

INK 1,0 

Por supuesto que poniendo el PAPEL a la misma TINTA que usa la PLUMA 
no podras observar el texto que haya en pantalla. 

La escritura de texto puede hacerse que sea "transparente" (y el cursor 
cuadrado que indica textos, siempre esta puesto para que sea transparente) 
u "opaca", usando una serie de caracteres de control que permiten ampliar 
provechosamente los comandos para graficos del BASIC. Con la opcion 
de transparencia, puedes no tener en cuenta el color del papel y 
sobreescribir los graficos, o puedes sobreescribir completamente el fondo. 
Este breve programa ilustra los efectos disponibles, pero restaura antes 
el ordenador pulsando CTRL, SHIFT y ESC, como ya estas acostumbrado. 

10 MODE 1 

20 INK 2, 19 

30 DRAW 200,200,2 

40 LOCATE 1,21 

50 PRINT "1 NORMAL" 

60 PRINT CHR*(22)+CHR*(1) 

70 ORIGIN 0,0 

80 DRAW 500,200,2 

90 LOCATE 12, 18 

100 PR I NT "2 TRANSPARENTE" 

110 PRINT CHR*<22)+CHR*<0) 

120 LOCATE 22, 15 

130 PR I NT "3 NORMAL DE NUEVO" 



•Capftulo 5 Pagina 2 



GRAFICOS 



El primer comando DRAW hace que el ordenador DIBUJE un segmento, 
operacion que hace antes de que "pongamos" la opcion de transparencia, 
lo que hacemos en la linea 60 mediante el envi'o a pantalla de CHR$(22) 
+ CHR$(1), mientras que el segundo segmento que dibujamos en la linea 
80 lo hace ya con la opcion transparencia puesta. Observa como los puntos 
en que se solapan han cambiado de color, y como (con la opcion 
transparencia), la tinta que rellena el caracter, ha sido completamente 
sobreescrita. 

Canjea la posicion de las instrucciones que hacen que el ordenador "ponga" 
la opcion transparencia (linea 60) y que "quite" la opcion transparencia 
(linea 110), y observa como esto afecta a la imagen en pantalla. Una 
lista completa de todos estos comandos adicionales la damos en el 
Apendice VI. 



5.2 Modos de imagen en pantalla 

Hay tres MODOS en que la imagen en pantalla (con textos y graficos) 
aparece: 

a) Normal 

Modo 1: 40 columnas x 25 lineas, 4 TINTAS para textos 
320x200 motas, accesibles individualmente con 4 colores 

b) Modo multicolores: 

20 columnas x 25 lineas, 17 TINTAS para textos 
160x200 motas accesibles individualmente con 16 colores. 

c) Modo alta resolucion: 

80 columnas x 25 lineas, 2 TINTAS para textos 

640x200 motas, accesibles individualmente con 2 colores. 

Como puedes ver, la diferencia estriba en la cantidad de motas (elementos 
individuales pictoricos (pixels)) que caben horizontalmente en cada linea. 
No te confundas con las pequenas barras en la parte delantera del tubo 
de un televisor, que es una peculiaridad del equipo monitor de television 
que no guarda ninguna relacion. 

Cada uno de los tres diferentes MODOS en que usamos la pantalla, es 
lo que llamamos modo de imagen o de pantalla, y solamente puede aparecer 
uno en cada momento usando el lenguaje BASIC. Al cambiar de MODO 
hace que la pantalla se LIMPIE completamente, incluyendo todas las 
VENTANAS de texto o graficos que hayamos estipulado (el mismo efecto 
que con el comando CLS y CLG) pero no afecta en absoluto al programa 
contenido en la memoria. 

Los cambios de modo pueden hacerse con instrucciones BASIC, o pueden 
darse por teclado directamente con el comando correspondiente. 



Capftulo 5 Pagina 3 



GRAFICOS 



5.2.1 MODE 

Corresponde a imageries multicolores 

Pueden aparecer simultaneamente en pantalla 16 de los 27 colores 
disponibles, y cada elemento individual de la imagen puede ser programado 
en cuanto al color. La imagen esta compuesta de 160 motas en cada 
linea horizontal, y 200 en cada columna vertical. Una "reti'cula" para 
preparar figuras en este modo, aparece en el Apendice VI. 

En el MODO 0, hay por lo tanto posibilidad de mostrar 20 TIPOS 
(caracteres) en cada una de las 25 lineas. 



5.2.2 MODE 1 

Es el modo prescrito como standard 

El MODO 1 esta prescrito en el CPC464 y es el adoptado al ponerlo en 
marcha. En este modo se pueden mostrar simultaneamente 4 de los 27 
colores disponibles, aunque puedes conmutar rapidamente a traves de 
ttodos los 27, si lo deseas. La imagen contiene 320 motas a lo ancho^ 
por 200 motas a lo alto. Tambien en el Apendice VI aparece una reti'cula 
adecuada para este modo. 

En el MODO 1, hay por tanto 40 TIPOS (caracteres) en cada una de sus 
25 lineas. 



5.2.3 MODE 2 

Es el modo de alta resolucion 

El MODO 2 permite que se usen simultaneamente 2 colores de tinta, 
y primordialmente se elige por su capacidad para producir 80 caracteres 
de texto en cada una de sus 25 lineas, lo que hace que un programa sea 
mucho mas facil de escribir y de examinar al poderse ver mucho mas 
de cada programa con una sola pasada. 

El MODO 2 permite 640 motas en el sentido horizontal, juntamente con 
200 motas en cada columna vertical. 



5.2.4 Ensayando 

Con el CPC464 completamente restaurado, teclea el programa: 

5 REM DEMOSTROCION EJEMPLOS DE GRAF I COS 
10 MODE 1 

15 INK 2,0 

16 INK 3,6: REM 



Capftulo 5 Pagina 4- 



GRAFICOS 



17 BORDER l: REM AZUL OSCURO 

20 CLG: REM CLAREADO DE PANTALLA 

30 b#=RND*5+l :REM PONIENDO VARIABLES ENTERAS 

PSEUDO ALEATORIAS 
40 c*=RND*5+l 

50 ORIGIN 320,200 : REM FIJA ORIGEN GRAFICO 
60 FOR a = TO 1000 STEP PI/30 
70 xS=100*C0S(a> 
80 MOVE xS, xS :REM MUEVE EL CURSOR GRAFICO 

90 DRAW 200*C0S<a/b*),200*SIN<a/c%),3 
:REM DIBUJA LA LINEA 

91 IF INKEY*<>"" THEN 20 

100 NEXT :REM RETROCEDE A 60 SINO SE INTERRUMPE EN 91 
110 GOTO 20 

Ahora EJECUTA el programa. pulsa "cualquier tecla" para conseguir otra 
imagen diferente. Asi' se demuestran varias de las facultades importantes 
de los circuitos y programas del CPC^'f. Con ellos el CPC464 "escribe" 
en la pantalla suavemente sin tirones ni temblores, y mediante comandos 
que consiguen efectos muy complicados con un minimo de esfuerzo. Las 
instrucciones REM, simplemente sirven para reMEMOrar, pero no necesitas 
incluirlas para que el programa f uncione; te ayudan a ti' y particularmente 
a la gente que no escribio el programa pero lo esta estudiando para 
comprender mejor el trabajo que hace. 

Observando los numeros de linea, puedes detectar tambien algunas que 
son consecuencia de reflexiones y recensiones, y aunque podriamos 
presentar los numeros en intervalos constantes, RENUMerando, te ayuda 
a ver la manera en que hemos desarrollado los programas a partir de 
estructuras simples iniciales. 

Guarda este programa en cassette, mediante, por ejemplo, el comando: 

SAVE "GRAFICO 5.5.84" 

Este otro programa de demostracion, PINTA una imagen coloreada con 

distinto "cariz": 

new 

10 a*=INKEY*: REM PULSA UNA TECLA PARA 

INICIAR UNA NUEVA SECUENCIA 
20 IF a*="" THEN 10 
30 CLS 
40 m=INT<RND*3) : REM SELECCIONA UN NUMERO 

ALEATORIAMENTE ENTRE Y 3 
50 IF m>2 THEN 40 ."REM PRUEBA DE NUEVO 
60 MODE m 

70 il»RND*26:REM TOMA VALORES PARA INK ALEATORIAMENTE 
80 i2=RND*26 

90 IF ABS(il-I2)<5 THEN 70 
100 INK 0, ill INK 1, i2 
— Capftulo 5 Pagina 5 - 



GRAFICOS 



110 s=RND*5+3 

120 ORIBIN 320,-100 

130 FOR x= -1000 TO STEP s 

140 MOVE 0,0 

150 DRAW x,300:DRAW 0,600 

160 MOVE 0,0 

170 DRAW -x,300: DRAW 0,600 

180 a**INKEY* 

190 IF a*<>"" THEN 30:REM INTERRUMPE EL BUCLE 

PRESIONANDO UNft TECLfl 
200 NEXT X 
210 GOTO 10 

Tanto este como el programa anterior, ilustran simples conceptos 
matematicos de una forma coloristica y televisiva. Ambos basicamente 
hacen sumas de numeros generados al AZAR a partir de un determinado 
"germen" para garantizar que cada una de las imagenes tienen diferente 
cariz, y muestran los resultados como segmentos aleatoriamente situados. 

Tu CPC464 es tambien un excelente "impreso" electronico para dibujar 
funciones y curvas geometricas, y una de las que tienen un cariz mas 
conocido es la que corresponde a una "onda sinusoidal". 

10 REM DIBUJfl SINUSOIDE 

20 MODE 2 

30 INK 1,21 

40 INK 0,0 

50 CLS 

60 DEG 

70 ORIGIN 0,200 

80 FOR n=0 TO 720 

90 y=SIN(n) 

100 PLOT n*640/720, 198*y, 1 

110 NEXT 



La instruccion PLOT, hace que la maquina PINTE una sola mota, en la 
parte de la pantalla determinada por las coordenadas mencionadas en 
la instruccion. En este ejemplo, y mediante el bucle que empieza en la 
linea 80 y culmina en la 110, aparece la curva del seno, pintada mota 
a mota. 

El CPC464 dispone de muchos comandos, simples y potentes, que anaden 
efectos especiales al programa anterior. Por ejemplo, con: 

15 BORDER 6,9 



Capltulo 5 Pagina 6 



GRAFICOS 



Hacemos que el BORDE presente sucesivamente los colores correspondientes 
a los numeros 6 y 9. El ritmo o cadencia de palpitacion, esta prescrito 
a su valor habitual. Para hacer que el programa deje de dar "rondas" 
sin cesar, ESCapa (y por dos veces para interrumpirlo, porque con una 
sola, simplemente suspendes la operacion), luego anade la instruccion: 

120 BOTO 50 

Observa que el borde no cesa de palpitar aunque el programa ya ha 
concluido, y es debido a que el borde que enmarca la imagen se controla 
independientemente del resto del programa. Para detener el parpadeo 
del borde y hacer que sea permanentemente azul brillante, cambia la 
li'nea 15 para que sea: 

15 BORDER 2 

Y observaras que al concluir la EJECUCION del programa, cesa la 
palpitacion del borde. Para cambiar el color con que la PLUMA PINTA 
la li'nea y para cambiar la tinta del PAPEL que usa, cambia las 
instrucciones INK respectivas, en las li'neas 30 y 40. Ahora, cuando le 
hagas que LISTE el programa, aparecera: 

10 REM DIBUJft SINUSOIDE 

15 BORDER 2 

20 MODE 2 

30 INK 1,2 

40 INK 0,20 

50 CLS 

60 DEG 

70 ORIGIN 0,200 

80 FOR n=0 TO 720 

90 y=SIN(n) 

100 PLOT n»640. 720, 198*y, 1 

110 NEXT 

120 GOTO 50 

El numero 1 al final de la instruccion PLOT de la li'nea 100, le dice al 
ordenador que PINTE la curva con el color correspondiente a la TINTA 
1 (que es la de la PLUMA), elegida en la instruccion numero 30. Comprueba 
la definicion del comando PLOT en la lista de palabras clave del capitulo 
8, y veras exactamente como afectan al comando los diversos 
PARAMETROS que puedes resenar. 

Si miras concienzudamente la curva que se esta pintando en la pantalla, 
veras que no es una li'nea perfectamente continua, sino que esta formada 
por segmentos diminutos. El mas pequeno de esos segmentos, es lo que 
hemos llamado MOT A anteriormente (y que como es un elemento 
"pictorico", tambien se le llama "pixel"). 



-Capitulo 5 Pagina 7 



GRAFICOS 



5.2.5 El invisible cursor para graficos 

Ya has ensayado algunas de las maneras en que puedes usar en los 
programas la capacidad grafica del CPC464, y algunos de los conceptos 
y comandos han tenido la oportunidad de mostrar su actuacion. Cuando 
quieres sacar rectas y curvas en la pantalla, hay que vigilar algunas 
consideraciones importantes para evitar confusiones. 

El primer punto a vigilar es el estado presente de la memoria, en el 
recinto reservado al programa. El ordenador recuerda como tienes en 
cada momento estipulados los colores, incluso aunque le hayas dado el 
comando NEW para DESNUDAR la memoria de programa. Para restaurar 
todas las condiciones iniciales, prescritas en fabrica para que actuen 
al poner en marcha el ordenador, debes pulsar sucesiva y simulteneamente 
CTRL, SHIFT y ESC para volver a esas condiciones, sin necesidad de 
apagar y encender de nuevo, pero por supuesto, debes hacer que GUARDE 
todo en el cassette, antes de restaurar. 

Vamos a comprobarlo, tecleando simplemente: 

NEW:CLS 

...despues de hacer que el ordenador interrumpa la ejecucion del programa. 
Teclea ahora: 

DRAW 100, 100 

El comando DRAW pide al ordenador que DIBUJE una linea recta a partir 
del punto en que se encuentre en ese momento el cursor de graficos 
(invisible) hasta el punto cuyas coordenadas x e y, son las mencionadas 
en el comando (100,100). Aunque es invisible, el cursor de graficos es 
un "ente" que la maquina maneja internamente para saber las coordenadas 
del punto recien aceptado por el ultimo comando que hayas hecho en 
relacion con graficos. 

Pero si' puedes saber las coordenadas donde esta UBICADO en cada 
momento el cursor de graficos, mediante las funciones XPOS e YPOS. 
Despues del comando DRAW anteriormente dado al ordenador, es logico 
que si tecleas: 

PRINT XPOS 

Te de como respuesta/ 

100 

(y lo mismo ocurriria con YPOS en este momento). 



Capitulo 5 Pagina 8 



GRAFICOS 



Observa que aunque debido a la longitud de texto, llegues hasta la parte 
inferior de la pantalla, con lo que provocas que se DESPLIEGUE la imagen 
subiendo una linea, y que a pesar de que tambien subira la imagen grafica 
que puedas tener, las coordenadas correspondientes a la ubicacion del 
cursor de graficos, continuan con los valores que teni'an. Puedes facilmente 
ensayar con esto, manteniendo la tecla de BAJADA DE CURSOR (4-) hasta 
que la pantalla q^uede limpia, y preguntar en esa situacion la UBICACION 
del cursor de graficos. Continuara con la misma coordenada x, y con 
la misma coordenada y. 

Para especificar el color con que queremos que DIBUJE una linea, anade 
un parametro mas al final del comando DRAW. (Puedes ver la descripcion 
que hemos hecho del comando PLOT en el programa anterior, porque 
funciona de la misma manera). 

Debes primeramente, especificar la TINTA, y recuerda que solo puedes 
usar los numeros de colores admitidos en el modo de pantalla en que 
estes. Para ensayar con esto, teclea: 

10 MODE 1 

20 INK 0, 10 

30 ORIGIN 0,0 

40 INK 1,26 

50 INK 2,0 

60 DRAW 320, 400, 1 

70 DRAW 640,0,2 

Aquf hay un ejemplo que usa todos los conceptos y comandos mencionados 
hasta ahora, al mismo tiempo que presenta una pareja nueva de conceptos 
fructi'feros. Observa como en la primera instruccion estipulamos las 
condiciones de color de la TINTA usada con la PLUMA y con el PAPEL, 
para asegurar que se anula el efecto de las condiciones que hubiera en 
la memoria del CPCt64, y producir los resultados que queremos: 

10 INK 0,0:INK l,26sINK 2,6:INK 3,18: BORDER 

20 REM dibuja figuras regulares 

30 mode l:DEG 

40 PRINT "3,4 o 6 lados ? "; 

50 LINE INPUT p* 

60 IF p*="3" THEN sa= 120: GOTO 100 

70 IF p*="4" THEN sa= 135: GOTO 100 

80 IF p*="6" THEN sa= 150: GOTO 100 

90 GOTO 50 

100 PRINT: PRINT "Calculando" ; 

105 IF p*="3" THEN ORIGIN 0,-50,0,640,0,400 

ELSE ORIGIN 0,0,0,640,0,400 
110 DIM cx(5),cy(5),r(5), lc(5) 
120 DIM np<5> 

130 DIM pxX(5,81>,py%<5,81> 
140 st=l 



Capitulo 5 Pagina 9 



GRAFICOS 



150 


cx(l)=320:cy<l)=200:r(l)=80 


160 


FOR st = l TO 4 


170 


r(st+l)=r(st)/2 


180 


NEXT st 


190 


FOR st = l TO 5 


200 


lc(st)=Osnp(st>=0 


210 


np(st )=np(st)+l 


220 


px%(st,np(st))=r(st)*SIN(lc(st)) 


230 


py% <st , rip (st ) ) =r (st ) *COS ( lc (st ) ) 


240 


lc(st)=lc(st)+360/r(st> 


245 


IF (lc(st) MOD 60) =0 THEN PRINT "." ; 


250 


IF lc(st) < 360 THEN 210 


252 


px%(st, np(st)+l)=px*(st, 1) 


254 


py%(st,np(st)+l)=py%(st, 1) 


260 


NEXT st 


265 


CLS:ink 1,2 


270 


st = l 


280 


GOSUB 340 


290 


LOCATE 1, 1 


300 


EVERY 25, 1 SOSUB 510 


310 


EVERY 15,2 60SUB 550 


320 


EVERY 5,3 GOSUB 590 


330 


GOTO 330 


340 


REM dibuja urt circulo con mas de 3, 4 o 


6 lados 


350 


cx*=cx(st) :cy*=cy(st) slc(st)=0 


360 


FOR x%=l TO np(st) 


370 


MOVE cx*,cy* 


380 


DRAW cx*+px%(st, x*> , cy%+pytf (st, x*) , 


l+(st MOD 3) 


390 


DRAW cx%+px*(st, x%+l),cy%+py*(st, 


x%+l), l+(st MOD 3) 


400 


NEXT x* 


410 


IF st=5 THEN RETURN 


420 


lc(st)=0 


430 


cx(st+l)=cx(st)+1.5*r(st)*SIN(sa+lc(st)) 


440 


cy (st+1 ) =cy (st ) +1 . 5*r (st ) *COS (sa+lc (st ) ) 


450 


st=st+l 


460 


GOSUB 340 


470 


st=st-l 


480 


lc (st ) =lc (st ) +2»sa 


490 


IF (lc(st) MOD 360)0 THEN 430 


500 


RETURN 



Capftulo 5 Pagina 10- 



GRAFICOS — 

510 ik(l)=l+RND*25 

520 IF ik<l)=ik<2> OR ik(l)=ik<3> THEN 510 

530 INK 1, ik(l) 

540 RETURN 

550 ik<2)=l+RND*25 

560 IF ik(2)=ik(l) OR ik(2)=ik(3) THEN 550 

570 INK 2, ik(2) 

580 RETURN 

590 ik(3)=l+RND*25 

600 IF ik(3)=ik(l) OR ik(3)=ik(2> THEN 590 

610 INK 3, ik(3) 

620 RETURN 

Cuando ejecutes este programa, te hara una pregunta (linea 40), y contesta 
tres en esta ocasion para conseguir mas rapidamente resultados. El 
programa te anunciara despues: Calculando, y te ira exponiendo un punto 
cada pocos segundos (linea 245) para indicar que todavia "se lo esta 
pensando" y confirmar que el programa sigue ejecutandose. 

Las SUBRUTINAS (parrafos del programa que empiezan en una determinada 
linea y terminan con el comando de VUELVA (RETURN)), que son 
CITADAS en las lineas 300, 310 y 320, obligan a que la imagen parpadee 
con diferentes tintas, y a las "cadencias" determinadas por el comando 
EVERY, que fija CADA cuanto tiempo debe hacerlo. Por lo tanto, si 
quieres ralentizar el parpadeo, cambia las linea 300 a 320 para que digan: 

300 EVERY 250, 1 GOSUB 510 
310 EVERY 150,2 GOSUB 550 
320 EVERY 50,3 GOSUB 590 

Para ver lo que has conseguido, estudia el comando EVERY en el capitulo 
8, ya que es una de las facultades mas aprovechables del BASIC AMSTRAD, 
Uno de los efectos interesantes de este comando EVERY, n segundos 
segun su TEMPORIZADOR m, vaya a la subrutina que comienza en la 
linea mencionada, es la manera en que va apilando estas recuestas si 
se interrumpe el programa pulsando la tecla ESC, solo "una vez". 

Al hacer esto, suspende la operacion del programa durante unos pocos 
segundos y luego reanudala pulsando "cualquier tecla". La imagen palpitara 
freneticamente, ya que las temporizaciones solicitadas han "sido puestas 
en la cola" y se apresuran a tomar la vez. En cada una de las "colas" 
que el sistema mantiene, solo hay un espacio limitado, asf que despues 
de un rato, un nuevo comando EVERY se ve desechado hasta que haya 
espacio disponible porque ya se ha vaciado parte o enteramente alguna 
de las colas. 



Capitulo 5 Pagina 11- 



GRAFICOS 



5.3 Ventanas o vifietas 

El usuario puede seleccionar hasta 8 ventanas o vifietas de texto en los 
que escribir caracteres, y tambien una ventana o vineta de graficos en 
que pueda pintar. Las ventanas estipuladas se anulan cuando se cambia 
el modo de imagen. Estudia las descripciones correspondientes del capitulo 
8. 

NB: Si la ventana de texto es equivalente a toda la pantalla (el valor 
prescrito para omisiones), el DESPLIEGUE rapido de las imagenes se 
consigue por los circuitos electronicos. Si la ventana de textos es menor 
que el area disponible en pantalla, el CPC464 consigue el "despliegue" 
de las imagenes por programas internos, que por lo tanto es mucho mas 
lento. 

El comando WINDOW, especifica los margenes izquierdo/derecho/superior/ 
inferior que corresponden al CAUCE de comunicacion con esa ventana, 
y por tanto a la posicion que ocupa la ventana dentro de la pantalla. 
Esas ventanas o vifietas pueden solaparse unas con otras, permitiendo 
asi' un metodo rapido para rellenar las vifietas. Antes de comenzar a 
explorar esta nueva facultad, teclea: 

KEY 139, "mode 2:paper 0:ink 1,0: ink 0,9: 
list"+chr*<13) 

Con esto haces que al pulsar la pequefia de las teclas ENTER, se limpie 
y restaure el sistema y se estipulen colores visibles K de manera que no 
te pierdas en una combinacion con la misma TINTA para el PAPEL y 
la PLUMA. El ejemplo fabrica una serie de ventanas a lo ancho de la 
pantalla, e ilustra dos puntos importantes: 

5 MODE 

10 FOR n=0 TO 7 

20 WINDOW #n,n+l,rH-6,n+l,n+6 

30 PAPER # n, n+4 

40 CLS #n 

50 FOR c=l TO 200: NEXT 

60 NEXT 



El primero de esos puntos es que cada nueva imagen sobre-escribe la 
anterior, y el segundo que queremos destacar es que los mensajes siguen 
enviandose por el CAUCE numero en todo momento (a no ser que 
expli'citamente digas otra cosa). Antes de hacer cualquier otra cosa, 
LISTA el programa, y veras como sigue siendo enviado a traves del 
CAUCE 0. 

Ensaya ahora: 
LIST #5 



L 



Capitulo 5 Pagina 12- 



GRAFICOS 

Y luego: 

CLS #6 

para comprender lo que hemos dicho, a saber que el ultimo CAUCE hacia 
la pantalla que se emplee sobre-escribira todo lo demas, mientras que 
el mensaje tfpico del sistema Ready continua siendo enviado a traves 
del CAUCE 0; incluso aunque hayas hecho que el listado se envi'e a traves 
del CAUCE numero 5. 

Ademas es posible usar un comando para obligar al ordenador a que 
CAN3EE ventanas, mediante el comando SWAP. Anade, por ejemplo la 
li'nea 55: 

55 IF n=3 THEN WINDOW SWOP 7,0 

Y puede que supongas que enviara el mensaje Ready por el cauce 7. Pero 
ejecutalo y comprueba. Al desarrollar este programa tan jsimple!, 
apreciaras la manera en que el CPC464 utiliza sus potentes facultades 
en cuestion de manipular vinetas dentro de la pantalla. 



-Capftulo 5 Pagina 13- 



> 
r 



SONIDOS 



6. Lo primordial de Sonidos 



Los efectos sonoros son reproducidos por un altavoz incorporado en el 
propio ordenador. Si estas usando el modulador/alimentador MP1 y un 
televisor, gira por tanto el control de volumen de tu TV a un minimo. 

El VOLUMEN del sonido puede ajustarse usando el boton VOLUME en 
el costado derecho del ordenador. El sonido puede tambien ser enviado 
al enchufe de entrada auxiliar de tu cadena estereo, a traves del enchufe 
de entrada/salida (I/O) en la parte izquierda del panel trasero del 
ordenador. Eso te permitira escuchar el sonido generado por tu ordenador 
en estereo, a traves de altavoces o auriculares de alta fidelidad. 

El CPC464 SUENA tan bien como aparenta. Para conseguir aprovechar 
las facultades sonoras en forma inimaginable, necesitas comprender 
previamente la filosofia que gobierna las estructuras de tiempos y tonos. 




* 

* 



Temas tratados en este capftulo: 

Perfodos (duracion) del tono 
Haciendo que SUENE 
Envolventes 
* "CHORROS" de notas y sincronizacion 

Si todo lo que quieres hacer es simplemente que el ordenador emita un 
pitido, teclea: 

PRINT CHR*(7) 

Y no vayas mas alia, con lo que ya habras conseguido todo lo que pueden 
dar otros ordenadores personales. Pero si lo haces, te perderas algunas 
de las facultades mas interesantes y motivadoras del CPC46^, asi que 
esta seccion es un fundamento que te dara una vision general del tema, 
seguida de un analisis pormenorizado de las palabras reservadas y de 
como dar los comandos. Proporcionara al programador los fundamentos 
para saber como construir un "chorro" de notas, inventar diversas clases 
e instrumentos musicales, y estructurar sus "tonadas" usandolos. 



Capftulo 6 Pagina 1' 



SONIDOS 



L 



6.1 Fundamentos del comando SOUND 

Cuando escuchas el sonido de una NOTA MUSICAL standard, generada 
por un diapason, hay varios atributos que debes considerar: 

1) El tono y las variaciones del tono en el tiempo que dura la nota. 

2) Volumen y variaciones en el volumen en el intervalo de tiempo que 
dura la nota. 

3) Duracion de la nota. 



6.2 El TONO 

En una nota musical pura, el tono es con mucho, el atributo mas 
importante. Una nota musical pura puede describirse como una oscilacion 
regular, y como todas las oscilaciones, tiene FRECUENCIA, PERIODO 
y AMPLITUD. 




tiempo (segundos) 



Figura 1: Las caracteristicas de las notas musicales puras. 

La frecuencia es el numero de oscilaciones que da en cada segundo, 
mientras que el periodo es la duracion de cada una de esas oscilaciones. 
La amplitud es el nivel maximo alcanzado y esta relacionado con el 
volumen, y no concierne en absoluto con la definicion del TONO de una 
nota. 

Facilmente veras que frecuencia y periodo estas relacionadas unas a otras 
simplemente por: 

Frecuencia (expresada en ciclos por segundo) = 1 /Periodo (expresado 

en segundos) 

La relacion entre la frecuencia y el <perfodo del tono> emitido por el 
altavoz del ordenador con el comando SOUND, viene dado por: 

Frecuencia (expresada en ciclos por segundo) = 125/<peribdo del 

tono> 



Capitulo 6 Pagina 2 



►i 



SONIDOS 



Por lo tanto, un periodo del tono de 1000 dari'a como resultado un tono 
con frecuencia de 125 cps, y un periodo del tono de 125 dari'a como 
resultado un tono (bastante comun en telefonia) de 1000 cps. 

Cualquiera de estas magnitudes pudiera usarse para estipular el TONO, 
pero en el BASIC AMSTRAD hemos elegido la que hemos llamado <peri'odo> 
del tono. No te confunda el hecho que a medida que crece de valor el 
periodo, el tono se hace mas grave. La gama de periodos disponible es 
amplia (0 a 4095) y debe designarse por un numeral entero. Y a pesar 
de ello, puede tener errores de redondeo en el tono emitido, pero nadie 
lo notara excepto quizas, un musico o un critico musical. Consulta tambien 
el Apendice VII. 

Cuando en un instrumento musical tradicional se toca una determinada 
nota, el TONO, puede variar, y algunas veces deliberadamente por 
"vibrato". Usando el comando que permite definir la ENVOLVENTE DE 
TONO, abreviado ENT, podemos estipular la forma especi'fica en que^ 
debe variar en PASOS discretos el tono, a lo largo de toda la duracion 
de la nota; y esa envolvente de tono puede ser mencionada en el comando 
SOUND. Igualmente sucede con la ENVOLVENTE DE VOLUMEN, 
abreviado ENV. 



6.3 Volumen de las notas 

El volumen es simplemente la medida de lo fuerte que suena. Para 
estipular el nivel inicial de volumen por cada nota generada en el CPC464, 
con el comando SOUND, disponemos de una gama de valores de a 15. 

Este valor para el volumen de la nota emitida, tambien puede mencionarse 
en el comando SOUND, y haremos referenda a el, diciendo simplemente 
<volumen>, y recuerda que puede ser una variable numeral entera. 

Si ya has ensayado con algunas notas simples, habras notado la poca gracia 
que tienen las notas puras, ya que el ordenador todavia no ha "elaborado" 
los otros atributos de la nota. La diferencia con los instrumentos musicales 
condicionales, radica que en ellos cuando se toca una nota el volumen 
va comenzando a crecer durante la primera parte de la nota -denominado 
el "ataque" se mantiene mas o menos constante durante un rato, y luego 
vuelve a decaer cuando esta terminando la nota emitida -denominada 
la "cai'da", 

Ademas, cada instrumento musical tiene una forma diferente de "atacar" 
las notas, mantenerlas, y de "cai'da" que le es especi'fico, y que en el 
ordenador CPC464 podemos simular si ajustamos el volumen para que 
vari'e en pasos o secciones a lo largo de la duracion de la nota. Y es 
lo que denominamos <envolvente de volumen>, y que podemos alterarla 
con el comando que usa la palabra clave ENV. 



Capftulo 6 Pagina 3 



SONIDOS 



6.4 Duracion de las notas 

La longitud en tiempo de las notas es una de las facetas basicas de 
cualquier composicion musical; la unidad musical para la duracion o longitud 
en tiempo de las notas es la CORCHEA, y hay minimos, semicorcheas, 
etc. que simplemente son multiplos o divisores de esta unidad basica. 
Pero como ademas las TONADAS pueden tocarse con diferente ritmo 
o velocidad, es necesario que esta unidad basica de duracion o periodo 
de referenda para la corchea "standard", tenga que determinarse. 

Para que no tengas que molestarte, hay un parametro del comando SOUND 
conocido como <duracion>, que ha de ser una variable numerica entera, 
y en que una unidad representa una centesima de segundo (1/100 segundo). 
Observa que tambien queda conformada por el parametro <envolvente 
de volumen>, y de esta forma evitamos las posibles confusiones. 



■Capftulo 6 Pagina 4 



SONIDOS 



ACORDES en los canales sonoros 




o 



< cE U 

to ro 03 

c c c 

ED fl tu 

U U U 

C C C 

o o o 

u u u 



c c c 

o o o 

1_ L. L. 

u u u 

c c c 

1/1 in 1/1 



Hi u 
Qi C£ QC 



OaNVM3dS3 
VION §<7 


< 'a 




— 1 — 

Sic2 




ul 

• 




oaNvyadsa 

VION e£ 


1 


1 

f-, 

1 


1 

O 1 


iij 
z 


OdNVH3dS3 
VION e3 


1 

< 1 


1 

ml 


<N 1 W 




OaNVH3dS3 
VION §1 


1 


SIS 


u |a: 


o 

c 

(0 


OONVNOS 
VION 


1 
i 


1 

1 


°! 


E 
o 
U 




1 

< 

< 

z 
< 

u 




CQ 

< 
Z 
< 

u 




i 

u 

< 
z 

< 
u 


■a- j- -a- 

< cD U 

< CO U 




Capftulo 6 Pagina 5- 



SONIDOS 



6.5 Otros SONIDOS 

El ruido aleatorio ("ruido bianco") tambien puede ser generado por el 
ordenador mediante el comando SOUND, pero no es una nota musical. 
Puede anadirse como fondo de las melodias para crear variaciones 
interesantes, o simplemente usarlo por si' solo para efectos especiales. 
Y observa que la explosion es basicamente un ruido bianco con un 
parametro de <envolvente de volumen> especi'fico. Este ruido consta de 
tonos cuya frecuencia varia aleatoriamente y que duran lo estipulado 
en el parametro <periodo de ruido del comando SOUND. Una de las 
importantes facetas de este ordenador es que aunque hay tres CANALES 
disponibles separadamente y con la posibilidad de estipular tres <periodos 
de tono>, solo un <periodo de ruido puede aparecer en la combinacion 
de canales que se elija. 



6.6 Sonidos multiples y canales 

La mayoria de las piezas musicales se escriben usando dos claves como 

minimo: clave en FA y clave el SOL. Para simular este aspecto en el 

CPC464, se dispone de tres canales de sonido denominados A, B, C. 

En todos ellos se puede emitir sonidos independientemente, o puede hacerse 

que esten sincronizados. La seleccion del canal por donde se envia la 

nota, se efectua mediante el parametro <estado de canal> del comando 

SOUND. 



6.7 "Chorros" de notas en los canales 

Cada canal de sonido recibe las notas que debe emitir, una a una, 
formando un "chorro". En el ordenador se dispone de espacio para formar 
estos "chorros" solo para cinco comandos SOUND sucesivos; y uno de 
ellos, el que ocupe la posicion inicial, decimos que es el activo, y las 
otras cuatro posibles notas que estan esperando o "a la cola". El sistema 
operativo del CPC464 puede continuar realizando otras tareas mientras 
se estan emitiendo sucesivamente las notas que forman el chorro de cada 
canal, y solo vuelve cuando necesita conseguir mas notas sonoras a emitir. 



6.8 Estado del canal 

La funcion SQ aplicada a un determinado canal, nos entrega un valor 
correspondiente al estado de ese canal, y mediante ese valor podemos 
saber como es el chorro de notas que hay en ese canal; es decir, lugares 
sin notas, notas ACORDES, retenciones, etc. Puede usarse el comando 
ON SQ GOSUB como una interrupcion al sistema para que preste atencion 
a la seccion del programa que genera los sonidos, cuando el estado del 
canal es uno determinado. 



Captulo 6 Pagina 6 



SONIDOS 



6.9 Retenciones y ACORDES 

Para forzar que las notas sean emitidas al unisono, existe la posibilidad 
de marcarlas como ACORDES. En ese caso, la marca se coloca sobre 
aquellas notas de los diversos chorros que deben sonar simultaneamente, 
y se hace mediante el parametro correspondiente del comando SOUND. 
Es muy util para iniciar la temporizacion de los chorros de notas, cuando 
la melodia contiene pausas o intervalos de reposo, que no ocurren 
simultaneamente en los canales. 

Tambien es posible disponer la facultad de RETENER una determinada 
nota del chorro de manera que se logre la sincronizacion global de los 
canales (i.e. al arranque de una tonada), y puede ser con.un cierto retardo, 
y para todo ello es necesario haber marcado previamente la nota de ese 
chorro de forma adecuada. Tambien se dispone del comando RELEASE 
que permite se libere un chorro de notas que estuviera retenido. 



6.10 Comandos de generacion de tonos 

Forma del comando: SOUND G,H,I,J,K,L,M 

Siendo: G: Estado del canal 

H: Periodo del tono 

I: Duracion de la nota 

J: Volumen de arranque 

K: Envolvente de volumen 

L: Envolvente de tono 

M: Periodo del ruido 

El comando SOUND lo que hace es emitir un sonido, conformado por 
los parametros G a M, hacia los circuitos generadores de sonido del 
ordenador. Los valores de los parametros G a M han de ser enteros y 
dentro de la gama permitida, y unicamente es obligatorio siempre 
especificar los dos primeros. Los restantes son opcionales, pero tienen 
valores prescritos para cuando son omitidos, que comentaremos 
inmediatamente. 



6.10.1 Descripciones de los parametros: G: Estado del canal 

Gama de valores 1 a 255. 

Prescrito para misiones: ninguno (obligatoriamente debe darse un valor). 

Con el CPC464 es posible emitir tres sonidos diferentes al unisono. Eso 
lo logra porque tiene tres CANALES de sonido, llamados A, B, C, donde 
el organo central del ordenador va construyendo un CHORRO DE NOTAS, 
que los circuitos generadores de sonido procesaran y enviaran al altavoz. 



Capftulo 6 Pagina 7- 



SONIDOS 



DECIMAL 


BIT N° 


1 


BAN 


2 


1 


4 


2 


8 


3 


16 


4 


32 


5 


64 


6 


128 


7 BUN 



El estado del canal viene dado por un numeral entero con notacion decimal, 
que debe ser convertido al equivalente en binarlo, para poder entender 
el significado, ya que es el estado de cada uno de los 8 bits el que 
especifica la accion correspondiente al sonido enviado al canal o canales 
pertinentes. 



ACCION 

envia la NOTA al canal A 
envia la NOTA al canal B 
envia la NOTA al canal C 
marca ACORDE con canal A 
marca ACORDE con canal B 
marca ACORDE con canal C 
retencion de canal 
oclusion de canal 



(BAM corresponde al Bit Anterior del Numero, que es el bit mas 
significativo (en ingles LSB). BUN es el Bit Ultimo del Numero que es 
el menos significativo (en ingles MSB). 

Algunos ejemplos con valores en el sistema decimal son: 

2 = envia el SONIDO al canal B 
5 =4+1 envia el SONIDO a los canales A y C 

98=64+32+2 envia el SONIDO al canal B, marcandolo como ACORDE 
con el canal C y establece retencion del canal B. 

Es importante recordar que si se estipula que haya un ACORDE entre 

dos o mas canales, es necesario marcar el parametro de <estado del canal> 

en cada uno de ellos en el momento oportuno. 

La RETENCION detiene la elaboracion de ese sonido, y libera el chorro 
de notas que haya detras del que esta actuando, y no puede ser usado 
el canal hasta que sea LIBERADO con el comando RELEASE, o sea 
DERRIBADO dicho canal mediante un comando SOUND con el parametro 
pertinente. 

Cuando se especifica OCLUSION de un canal o canales, fijando el valor 
adecuado en el parametro <estado> de un comando SOUND, se ejecuta 
inmediatamente la cancelacion de todo el chorro de notas que pueda 
haber en espera, y cualquier nota que este sonando en ese momento queda 
inmediatamente cortada. El canal queda desactivado. 

H: Perfodo del tono 

Gama de valores: a 4095. 

Prescrito para omisiones: ninguno (valor obligatorio). 



Capftulo 6 Pagina 8 



SONIDOS 



Estipula que la frecuencia del sonido a generar (tono de la nota), sea 
la que resulte de evaluar la formula: 

frecuencia = 125000/periodo del tono 

Si se usa el valor 0, no se generara ningun tono, lo que puedes aprovechar 
cuando solo requieras RUIDO. 

I: Duracion 

Gama de valores: -32768 a +32767 
Valor prescrito para omisiones: 20 

Para valores positivos, este parametro establece la duracion en centesimas 
de segundo. Cuando es igual a 0, la duracion viene controlada por la 
longitud de la envolvente de volumen que se especifique. 

Cuando el valor de la duracion es negativo, su valor absoluto representa 
el numero de veces que se repetira la envolvente de volumen especificada. 

3: Volumen de la nota 

Gama de valores: a 15 (0 a 7 si no se especifica envolvente de volumen). 

Valor prescrito para omisiones: 12 (4 cuando no se especifica envolvente 
de volumen). 

Es el volumen de arranque o "ataque" de la nota, y se ve alterado cuando 
se especifica una envolvente de volumen. El cero corresponde a sin 
volumen inicial. 

K: Envolvente de volumen 

Gama de valores: a 15 
Prescrito para omisiones: 

El valor de este parametro especifica una envolvente definida previamente 
mediante el comando ENV. Cuando se usa el como valor de este 
parametro, el volumen no puede cambiarse con ningun comando ENV, 
y queda constante durante 2 segundos y al nivel de volumen que tenga 
el ordenador. 

L: Envolvente de tono 

Gama de valores: a 15 
Prescrito para omisiones: 

Este parametro especifica una envolvente de tono definida previamente, 
con el comando ENT. Si se usa el valor para el parametro, no puede 
cambiarse el tono por ningun comando ENT y queda constante en todo 
el <periodo de tono>. 

■ Capftulo 6 Pagina 9 — • 



SONIDOS 



M: Perfodo de ruido 

Gama de valores: a 15 
Prescrito para omisiones: 

Especifica el ruido a anadir a la nota generada con el comando. Si se 
usa el valor 0, no se anade ningun ruido. Recuerda que solamente puede 
estipularse un periodo de ruido cada vez. Lo que significa que todos los 
canales que tengan estipulado ruido, recibiran el mismo ruido. 



6.11 La envolvente de volumen usando el comando ENV 

El inicio del sonido (ataque) y la culminacion (cai'da) se requieren para 
hacer que las notas tengan vida propia. El comando de ENVolvente de 
volumen permite establecer el perfil del volumen a lo largo del tiempo 
de duracion de la nota. Es conveniente antes de describir dicho perfil 
al ordenador, usar un papel a escala para esbozar tus requisites, como 
en el ejemplo: 



volumen 



ENV 1.5,3.1,1.0,16.5,-3,2 




tiempo 
1/100 segundos) 



Figura 3: Ejemplo de envolvente de volumen. 

La curva debe ser traducida a numeros de modo que puedan resenarse 
en el comando. Para hacerlo, subdivi'dela en secciones, en cinco secciones 
como maximo. En cada seccion debes aproximar la curva primero como 
una li'nea recta y luego como una li'nea quebrada o escalonada, con el 
numero de escalones o pasos que quieras, y que llamaremos <cuenta de 
pasos>; y a estos pasos les corresponded una cierta longitud en tiempo 
que llamaremos <lapso>y que mediremos en centesimas de segundo. 

Al ir efectuando cada paso para dar un incremento o una disminucion 
de volumen, que denominamos <altura del paso. Si no se especifican 
pasos en una seccion, corresponded al volumen establecido en la seccion 
inmediatamente anterior. 



■Capftulo 6 Pagina 10- 



SONIDOS 



NB: Al intentar simular la envolvente especi'fica de un instrumento musical, 
sucede a menudo que el volumen inicial y final de cada nota sera 0, asi' 
que el volumen de arranque que estipules en el comando SOUND habra 
de ser 0, y todo el volumen cambiado segun la envolvente. 



Forma del comando ENV: 

ENV N,P1,Q1,R1,P2,Q2,R2,P3,Q3,R3,P4,Q4,R4,P5,Q5,R5 

N: Numero de la envolvente gama 1 a 5. 

PI a 5: Cuenta de pasos 
Ql a 5: Altura del paso 
Rl a 5: Tiempo del paso 



gama a 127 
gama -128 a +127 
gama a 255 



El numero de envolvente es un parametro obligatorio. Ademas es 
obligatoria una seccion completa por lo menos. Por ejemplo, puedes omitir 
las secciones 4 y 5 y decidir solo las tres primeras secciones de la 
envolvente). 



6.12 La envolvente de tono y el comando ENT 

La envolvente de tono tiene exactamente el mismo tipo de construccion 
que la envolvente de volumen, solo que aqui' lo que se varia no es el 
volumen sino el tono de sonido a generar; en otras palabras, lo que se 
llama "vibrato", consistente en variar alternativamente entre dos tonos 
cercanos. Despues de decidir la forma en cuando a los valores de tono 
que quieres que tenga esa nota, esbozalos como antes en papel a escala 
y divi'delo en secciones y pasos, como en el ejemplo: 

peribdo 
de tono 




1 i cuenta 5 

altura 1 

lapso 1 



cuenta 10 
altura -1 
lapso 1 



seccion 3 

cuenta 10 
altura 1 
lapso 1 



seccion 4 

cuenta 5 
altura -1 
lapso 1 



tiempo 

(1/100 segundos) 



Figura 4: Ejemplo de envolvente de tono. 



■Capftulo 6 Paginal 1 



SONIDOS 



La mayor diferencia entre las envolventes de volumen y las envolventes 
de tono, es que estas ultimas no tienen ningun efecto sobre la duracion 
de la nota; est'a duracion queda definida en el comando SOUND o en 
el comando ENV. Por lo tanto, si la envolvente de tono dura menos que 
la nota, a continuacion se genera el tono constante durante el tiempo 
que resta de duracion de la nota. Sin embargo, si la duracion de la 
envolvente de tono, sobrepasa en tiempo a la duracion de la especificada 
para la nota, las ultimas secciones y pasos de la envolvente de tono no 
se generan. 

Para repetir continuamente una cierta envolvente de tono durante todo 
el peribdo de tiempo especificado para la nota, usa un numero negativo 
para identificar la envolvente. (Pero solo en el parametro del comando 
ENT, y no en el parametro del comando SOUND). 



Forma del comando ENT: 



ENT S,T1.V1,W1,T2,V2,W2,T3,V3,W3,T4,V4,W4,T5,V5,W5 



S: Numero de envolvente 
Tl a 5: Cuenta de pasos 
VI a 5: Altura del paso 
Wl a 5: Tiempo del paso 



gama 1 a 15 (negativo para repetir) 

gama a 239 

gama -128 a +127 

gama a 255 (centesimas de segundo) 



El numero de envolvente es obligatorio, y ademas completar cada una 
de las secciones individuates que uses. 

Cuando se define un <numero de envolvente>, todos los valores previamente 
estipulados son derogados. Si se especifica una envolvente de cualquier 
clase, sin ninguna seccion, se tomaran como parametros los correspondientes 
a la envolvente con numero cero. 



6.13 Otras funciones y comandos asociadas 
SQ(x) 

Siendo x el numero de canal, que es 1 para el canal A, 2 para el canal 
B, y cuatro para el canal C. (Como corresponde a la notacion interna 
binaria). 

Como ya te mostramos en la tabla explicativa de los bits del parametro 
estado de canal, solo te diremos que esta funcion entrega como resultado 
un numero entero en la gama a 255, que tendras que analizar segun 
su equivalente binario para poderlo interpretar. Lo unico que varia con 
respecto al parametro del comando SOUND son los bits a 2, y el bit 
7, pero repetimos todos para mayor claridad: 

Bit 0, 1, 2 numero de espacios libres en el "chorro" examinado (de 
a 4 en decimal). 



Capftulo 6 Pagina 12- 



SONIDOS 



Bit 3 la nota inicial del chorro esta marcada con ACORDE con 

canal A 
Bit 4 la nota inicial del chorro esta marcada con ACORDE con 

canal B 
Bit 5 la nota inicial del chorro esta marcada con ACORDE con 

canal C 
Bit 6 la nota inicial del chorro esta marcado con RETENCION 

Bit 7 el canal esta actuando en ese momento. 

Los Bits 3 a 6 (ACORDES y RETENCION) los comentamos al tratar el 
<estado de canal>. Ademas de la facilidad para examinar el estado de 
un canal, puede emplearse para INHIBIR la la serial de interrupcion que 
provoca la ejecucion del comando ON SQ GOSUB, descrito en el siguiente 
parrafo. 

ON SQ GOSUB 

ON SQ(y) GOSUB numero de linea 

Siendo'y'el numero de canal, que segun los bits del equivalente en binario, 
sera 1, 2 6 4, para los canales A, B, C, respectivamente. 

Esta instruccion solamente se ejecuta cuando ha habido una serial de 
INTERRUPCION, provocada por estar vacio el canal mencionado cuando 
no esta INHIBIDO por algun comando SQ o SOUND anterior; y al ejecutarse 
obliga a un DESVIO hacia el numero de li'nea mencionado en la instruccion. 
La subrutina a la que se desvia, debe terminar con la instruccion RETURN, 
para que VUELVA como hace habitualmente. Todos los canales tienen 
la misma prioridad en cuanto a la generacion de interrupciones, y cuando 
hay un "vacio" en el canal mencionado en la instruccion, no solo se provoca 
la ejecucion de la subrutina, sino que la ha INHIBIDO para generar otras 
posibles interrupciones; por lo que dentro de la propia subrutina necesitaras 
quitar la inhibicion e interrupciones, si es que las vas a necesitar de nuevo. 

RELEASE 

RELEASE z 

Siendo z el numero del canal que se ve LIBERADO. Observa que aqui' 
el numero de canal esta en la gama de 1 a 7 para poder "liberar" varios 
canales con un solo comando. 

Como se describio en el parametro estado de canal del comando SOUND, 
es posible establecer en cualquier nota que se envia a un canal, una marca 
de RETENCION. El comando RELEASE simplemente quita esas marcas. 
El numero del canal tiene su significado de acuerdo con la composicion 
del numero equivalente en binario, lo que nos permite "liberar" cualquier 
combinacion de canales con un solo comando. 

Bit 0: Canal A Bit 1: Canal B Bit 2: Canal C 
— Capftulo 6 Pagina 13 — 



JOYSTICKS E IMPRESORAS 



7. Imprimiendo y jugando 



El CPC*64 no necesita ningun acoplador adicional para operar con uno 
o dos controladores de juego (joystick), y para usar una impresora 
compatible con la norma Centronics. 

Temas tratados en este capftulo: 



* 
* 
* 



"Joysticks" 

Impresoras en paralelo 
Acoplando 



El modelo de mandos para juegos, llamados tambien palancas, AMSOFT 
JY1 es un equipo adicional que seguro desearas adquirir si usas el 
ordenador CPC464 con programas que incorporen esta posibilidad 
interesante para movimientos y disparos dentro de un juego. El 3Y1 
puede enchufarse en la parte trasera de tu ordenador, usando el enchufe 
de 9 vias marcado USER PORTS (I/O). El ordenador Amstrad CPC464 
puede usarse con dos "joysticks" simultaneamente, enchufando el segundo 
de ellos en el correspondiente conector del primero. 

No hay que hacer ninguna observacion especial sobre como conectarlos 
al CPC464. Simplemente se inserta directamente la clavija del extremo 
del cable del joystick en el enchufe de 9 pines, previsto en la parte 
exterior del ordenador y marcado USER PORTS (I/O), que es el "portal" 
para entradas y salidas hasta/desde el ordenador. Tambien puede acoplarse 
un segundo joystick si es necesario para el juego, insertando su clavija 
en el enchufe previsto en la base del primer joystick JY1. Las conexiones 
de estas clavijas y enchufes se enumeran en el Apendice V al final de 
este manual, junto con todos las otras funciones y conectores del 
CANALIZADOR de entrada/salida. 



Conector para un segundo joystick JY1 



Joystick JY1 




Capftulo 7 Pagina 1 



JOYSTICKS E IMPRESORAS 



7.1 Jugando con joysticks 

Los programas incorporados en el ordenador CPC464 AMSTRAD, admite 
uno y dos joysticks, que son tratados como si fueran parte del teclado, 
y por tanto, puede examinarse el dato que estan enviando como si fueran 
teclas; es decir, podemos usar el comando INKEY y la funcion INKEY$, 
que guardan estfecha relacion con las INDAGACIONES de valores tecleados. 
Nota que si existe un boton para disparar en tu joystick, es probable 
que sea el que dentro de la terminologia AMSTRAD para el CPC46*f, 
corresponde al GATILLO 2 (en ingles, "Fire 2", pero no hacen "fuego"). 

Se dispone de una funcion para examinar directamente el estado de cada 
uno de los JOYSTICKS, y es JOY(O) para el primero, y JOY(l) para el 
segundo. El valor resultante de la funcion tiene significacion al emplear 
la notacion binaria, con la que indica el estado exacto de sus controles 
en el momento de la ultima exploracion del teclado. Como se efectuan 
50 "barridos" del teclado por segundo, el valor obtenido es virtualmente 
el estado en ese mismo instante de la posicion del joystick (que en ingles 
significa "baston de jugar"). 

Los valores CLAVE correspondientes a los joysticks, se muestran en la 
tabla siguiente, siendo CLAVE el valor que hay que usar como argumento 
en la funcion INKEY, mientras que ESPEJO es la tecla equivalente del 
teclado. 



Primer 
Joystick 


JOY(0) 


CLAVE 


Segundo 
Joystick 


JOY(i) 


CLAVE 


ESPEJO 


Arriba 


Bit 


72 


Arriba 


Bit 


t& 


6 


Abajo 


Bit 1 


73 


Abajo 


Bit 1 


W 


5 


Izquierda 


Bit 2 


7H 


Izquierda 


Bit 2 


50 


R 


Derecha 


Bit 3 


75 


Derecha 


Bit 3 


51 


T 


Gatillo 2 


Bit k 


76 


Gatillo 2 


Bit it 


52 


G 


Gatillo 1 


Bit 5 


77 


Gatillo 1 


Bit 5 


53 


F 



Observa que cuando el CPC464 examina el estado del segundo joystick, 
no puede decir si realmente corresponde al joystick o a las teclas 
equivalentes que figuran en la columna ESPEJO. Pero en la practica no 
es probable que haya conf licto de interpretacion, y asi' se puede usar 
el teclado como segundo joystick (cuando todavia no lo has adquirido). 

Cuando se usa el AMSOFT JY1, el segundo es identico al primero, y 
se conecta en el enchufe de la base del considerado primero. No se 
requiere cableado especial para poder usar este segundo joystick. 

El conector en la parte trasera del ordenador que sirve de PORTAL DE 
ENTRADA/SALIDA, afecta joysticks standard para otros ordenadores 
personales, aunque no suele permitir la utilizacion de un segundo joystick 
a no ser que se emplee un adaptador especial. Sin embargo, NO intentes 
usar uno de estos como segundo joystick y enchufarlo en el conector 
del AMSOFT 3Y1. 



Capftulo 7 Pagina 2 



JOYSTICKS E IMPRESORAS 



Los escritores de programas pueden considerar la posibilidad de permitir 
al comienzo de sus programas que el usuario elija operacion con los 
joysticks o con las teclas de cursor, pudiendo emplear en lugar de la 
tecla COPY o de cualquier otra, el gatillo de disparo. 



7.2 Acoplando la impresora 

El CPC464 AMSTRAD admite utilizar una impresora que responda a la 
norma de interconexion "Centronics" standard en la industria. 

El cable impresora se construye simplemente por conexiones directas 
y una a una entre el conector marcado PRINTER en el ordenador y el 
conector de la impresora. Observa que en la tarjeta de circuito impreso 
del ordenador nemos dejado dos 'pistas' menos que en el conector de 
la impresora; eso te permite usar conectores standard para tarjetas de 
circuito impreso directamente. 

Los detalles exactos de la interconexion se muestran en el Apendice V. 

El cable debera construirse de modo que el pin 1 del ordenador conecte 
con el pin 1 de la impresora, el pin 19 del ordenador con el pin 19 de 
la impresora, etc. Y con los pines 18 y 36 de la impresora sin conectar 
a ningun pin del ordenador. 

En particular, la fila inferior de pistas en el ordenador esta numerada^ 
a partir de 19 (y no como pudieras esperar, a partir de 18 dado que solo 
hay 17 pistas en la fila superior); con el fin de que cada cablecillo que 
se use se conecte exactamente en la pista con el mismo numero tanto 
por la parte del ordenador como por la parte de la impresora. 

El ordenador usa la serial BUSY en el pin 1 1 para indicar si esta 
OCUPADO, y asi' poderse sincronizar con la impresora, para lo que 
esperara cuando la impresora no esta seleccionada o esta OFF LINE. 

No se requiere ningun comando de preparacion por parte del usuario, 

y la salida se dirige hacia la impresora en cuanto especifiques en cualquier 

comando de salida el CAUCE numero 8, como por ejemplo: 

LIST #8 

que hara que el programa BASIC que haya en memoria sea listado, 
siempre y cuando sea de la clase admitida para listado (no este protegido). 

Dentro de los programa, puedes usar instrucciones para que expongan 
datos por impresora usando el mismo numero de cauce; por ejemplo: 

PRINT #8, "Este es el curso para la impresora" 



Capftulo 7 Pagina 3 



JOYSTICKS E IMPRESORAS 



Muchas impresoras automaticamente pasan al renglon siguiente cuando 
el extremo de la lfnea a imprimir sobrepasa el margen permitido, asf 
que comprueba el manual de tu impresora. Pero observa que el BASIC 
AMSTRAD puede hacer esa misma funcion, si le especificas la ANCHURA 
de la li'nea a imprimir mediante el comando WIDTH. El valor prescrito 
cuando omites explicitamente otro, para la anchura de las impresoras 
es de 132 columnas, pero puedes fijarlo al valor que precises, por ejemplo 
con WIDTH 80. 

Cuando se le da como valor de anchura el de 255, el BASIC AMSTRAD 
no se preocupara de si la li'nea sobrepasa el margen derecho y delegara 
esta funcion completamente a la propia impresora. BASIC mantiene 
internamente un contador con la posicion que en cada momento ocupa 
el cabezal de impresion, y puedes examinar el valor de ese contador, 
y por tanto de la POSICION del cabezal de la impresora mediante el 
comando POS, como por ejemplo: 

IF P0S< #8) > 50 THEN GOTO 100 

El CPC^64 envia una marca de AVANCE DE LINEA, que corresponde 
en ASCII a CHR$(10) y una marca de RETORNO DE CARRO, que 
corresponde a CHR$(13), al final de cada una de las li'neas que quiere 
imprimir. La impresora habitualmente dispone de un conmutador con 
el que puedes elegir la entrada de datos apropiada, y sera obvio 
inmediatamente cuales son las exigencias prescritas como standard y 
para omisiones en cuanto intentes imprimir la primera vez. 



7.3 Imprimiendo los graficos 

El manual suministrado con tu impresora, especificara los CODIGOS DE 
CONTROL, que generalmente pueden ser enviados por el BASIC, al darle 
el comando: 

PRINT CHR*(n) 

Algunas de las impresoras tienen caracteres graficos similares a muchos 
de los que posee AMSTRAD y que estan enumerados en el Apendice III, 
pero es muy poco probable que todos los numeros asignados a los 
caracteres correspondan de manera exacta, de forma que tendras que 
preparar tu propia tabla de conversion de acuerdo con la impresora en 
cuestion. 

Aunque la interconexion con la impresora esta planteada para impresoras 
matriciales de bajo coste, admite por supuesto impresoras de margarita 
cuando responden a la norma de acoplamiento adecuada; y tambien 
admitira trazadoras de graficos e impresoras por chorro de tinta con 
varios colores de tinta. La clave de todas estas posibilidades de 
compatibilidad radica en que el CPC464 utiliza la norma standard para 
transferencia de datos en paralelo. 

Capftulo 7 Pagina 4 



BASIC: Palabras Clave 



8. BASIC AMSTRAD. 
Guia de referencia 



Una lista ordenada con todas las palabras clave del BASIC AMSTRAD 
e ilustrada por ejemplos, presentando la forma precisa de utilizacion 
y las palabras clave asociadas. 

Temas tratados en este capftulo: 

* La notacion empleada 

* Caracteres especiales y su significado 

* Todas las palabras clave (reservadas) en el BASIC 
AMSTRAD 

Este capftulo es un resumen conciso de las funciones que puede llevar 
a cabo el interpretador BASIC incorporado en el CPC464. El surtido de 
posibilidades disponibles, representa una implementacion standard en la 
industria del lenguaje BASIC, potentemente ampliada para estar acorde 
con los avanzados circuitos electronicos del CPC*64. 



8.1 Notacion 

Caracteres Especiales 

& o &H Prefijo para constantes hexadecimales 

&X Prefijo para constantes binarias 

: Separador de los comandos incluidos en una misma li'nea. 

// Prefijo de numero de CAUCE (por donde fluye la informacion). 

Literales 

Las constantes literales pueden tener de a 255 caracteres de longitud 
y puede intervenir en expresiones literales, uniendose mediante el operador 
de CONCATENACION o EMPALME, simbolizada por el signo +, siempre 
que el resultado de la expresion sea otro lftero con menos de 255 
caracteres. (Son consideradas como 'sartas' de caracteres, ocupando una 
posicion por caracter incluyendo el espacio en bianco). 

Las constantes numericas pueden ser enteras o reales. Las enteras nan 
de estar en la gama -32768 a +32767; mientras que las reales tienen poco 
mas de 9 digitos de precision, y han de estar en la gama -1.7E+38 a 
+ 1.7E+38, con el valor absoluto mas pequeno para representar la de 
aproximadamente 2.9E-39. 

Los nombres de las variables llevan como ultimo caracter del nombre 
un simbolo designador de la clase a que pertenece: % numerales enteros, 
! numerales reales, $ literales. 

Capftulo 8 Pagina 1 — 



BASIC: Palabras Clave 



L 



Una expresion es cualquier combinacion de constantes variables y 
operadores que puede ser evaluada y ei resultado de la evaluacion asignado 
a una variable de la clase pertinente. Habra expresiones numerales y 
expresiones literales. 

Si el resultado de la expresion no cae dentro de la gama permitida, o 
bien el argumento empleado en una funcion no corresponde con los valores 
aceptados, o bien el valor dado a un parametro de un comando BASIC 
no es valido, sera rechazado mostrando el correspondiente mensaje de 
error. 

Los CAUCES internos para la transferencia de informacion entre los 
circuitos centrales y perifericos del ordenador, estan IDENTIFICADOS 
mediante lo que llamamos numero del cauce. Hay numeros de cauce 
prescritos para el monitor, la impresora, la ductora de cassette, y el 
teclado. 



PALABRAS RESERVADAS 

En esta seccion enumeramos en orden alfabetico las palabras reservadas 
o palabras clave del lenguaje BASIC AMSTRAD, presentandolas en la 
siguiente forma: 

PALABRA CLAVE 

Sintaxis/Funcion 

Ejemplo 

Descripcion 

PALABRAS CLAVE asociadas 



IMPORTANTE: 

Las palabras clave pueden representar: 

ACCIONES: que con ciertos parametros nan de ser llevadas a cabo 
por el ordenador, y que pueden darse en forma de 
COMANDOS o de INSTRUCCIONES (precediendolas de 
un numero de li'nea). 

FUNCIONES: con los argumentos correspondientes y que pueden ser 
usadas en comando, instrucciones y expresiones. 

Parentesis 

Las parejas de ( ) se requieren como parte de las acciones o de las 
f unciones. En las descripciones y en el texto usamos otros tipos de 
parentesis, que no deben ser nunca tecleados como parte de la instruccion. 
Son: los corchetes cuadrados [ ] para datos o parametros opcionales. 
Los corchetes angulados < > para reflejar conceptos mencionados en el 
texto. 

Capftulo 8 Pagina 2 



BASIC: Palabras Clave 



Comillas 

Unicamente las comillas " " forman parte intrinseca del lenguaje BASIC, 
y se usan para delimitar exactamente las constantes literales. Aunque 
no es aconsejable, en ciertas ocasiones puede prescindirse de las comillas 
de cierre. 

Los apostrofes ' ' se usan para resaltar o destacar ciertos aspectos en 
las descripciones, pero no apareceran en ninguna parte para evitar 
confusiones, y solo los usaremos incluyendolos como cualquier otro signo 
dentro de una <expresion literal>. 

Tecleando 

BASIC convierte todas las palabras clave impuestas en el teclado usando 
las 'letras minusculas' a las correspondientes 'letras mayusculas' cuando 
se lista el programa. Los ejemplos que aqui' mostramos son en mayusculas, 
dado que asf aparecen al listar el programa; pero si los tecleas usando 
minusculas, te sera mas facil detectar los errores de tipografia mas 
rapidamente, dado que la palabra mal tecleada, continuara apareciendo 
en minusculas al ser listado el programa. 

Las palabras CLAVE han de estar delimitadas por separadores, dado que 
en el BASIC AMSTRAD esta permitido incrustar palabras clave en los 
nombres de las variables y en las constantes literales, y por tanto, 
LIST CODE es aceptable como nombre de una variable. 




Capftulo 8 Pagina 3 



BASIC: Palabras Clave 



ABS 

ABS(<expresion mneral)) 

PRINT fiBS(-67. 98) 
67.98 

FUNCION: El resultado entregado es el valor absoluto del argumento 
(lo que significa que si el numero es negativo lo convierte en positivo). 

CLAVES asociadas: SGN 



AFTER 

AFTER (expresion entera) t, {expresion altera)] GOSUB irmen de linea). 
AFTER 200,2 BOSUB 320 

ACCION: Se desvia a la subrutina despues de que ha transcurrido un periodo 

de tiempo dado. La primera expresion entera es el parametro que fija 

el periodo de demora en unidades de 0,02 segundos; y la segunda expresion 

entera -en la gama a 3- es el parametro que indica cual de los cuatro 

temporizadores (cronometros) disponibles es el que se emplea en esta 

accion. 

CLAVES asociadas: EVERY, REMAIN 

ASC 

ASC ({expresion literal)) 

PRINT ftSCC'X") 
88 

FUNCION: Obtiene como resultado el codigo ASCII correspondiente al 
primer caracter de un litero o expresion literal (siempre y cuando 
corresponda un caracter ASCII). 

CLAVE asociada: CHR$ 



Capftulo 8 Pagina 4 



BASIC: Palabras Clave- 



ATN 

RTN(<expresion nueeral)) 

PRINT OTNU) 
0.785398163 

FUNCION: Calcula el arco que tiene por tangente el valor especificado 
como argumento. (Convierte la expresion que figura como argumento 
previamente a un numero real en radianes, dentro de la gama -PI/2 a 
+PI/2). 

CLAVES asociadas: SIN, COS, TAN, DEG, RAD 



AUTO 

AUTO [(nutero de linea) IE, salto)] 

AUTO 100,50 

ACCION: Se usa exclusivamente como COMANDO para generar 
automaticamente numeros de linea del programa. El parametro numero 
de linea establece el numero a partir del que debe comenzar, y el 
parametro salto establece el que hay entre dos numeros de linea 
consecutivos. Los valores prescritos para omision son 10 para el numero 
de linea y 10 para el salto. 

Cuando un numero de linea del programa existente en memoria va a ser 
sobre-escrito como consecuencia de esta accion, el BASIC inserta un 
asterisco (*) como aviso. 



BIN$ 

BIN! (<expresion enter* positiva) [, (expresion enters)]) 

PRINT BIN* (64, 8) 
01000000 

FUNCION: El resultado de esta funcion es una 'sarta' de simbolos binarios 
1 y 0, representando el valor equivalente al del argumento <expresion 
entera positiva>, y formado por tantos 'bitos' como indique el segundo 
argumento de la funcion. 

CLAVES asociadas: HEX$, STR$ 

— — — ^—— ——-—-—— ^—— — — — — — — — — — — . Capftulo 8 Pagina 5 - 



BASIC: Palabras Clave ■ 



BORDER 

BORDER <color)[, (color)] 

BORDER 3,2 

ACCION: Cambia el color del 'borde' de la pantalla. Cuando se especifican 
los dos argumentos para el color, el borde alterna entre los dos colores 
con una 'cadencia' estipulable mediante el comando SPEED INK. La gama 
de colores para el borde es de a 26. 

CLAVES asociadas: SPEED INK 



CALL 

CflLL (expresion direccionalH, (lista de): <paraaetros)] 
CALL &BD19 

ACCION: Permite que se 'cite' una SUBRUTINA desarrollada externa 
e independientemente de BASIC. Usala con precaucion, porque no es una 
accion con la que el inexperto pueda experimentar. El ejemplo es 
relativamente inofensivo, dado que lo que hace es obligarle a esperar 
al siguiente 'cuadro' de la imagen en el monitor, lo que es especialmente 
aprovechable para sincronizar los movimientos de figuras cuando se trabaja 
con programas de 'animacion'. 

CLAVE asociada: UNT 



L 



CAT 

CAT 

COT 

ACCION: El BASIC comienza a examinar la cinta del cassette y a mostrar 
los nombres de los ficheros que va encontrando. Esta accion no afecta 
al programa existente en memoria, y por tanto, puede usarse para verificar 
que un programa ha sido GUARDADO antes de alterar el programa. El 
BASIC te pide que pongas en marcha el cassette, y el mensaje con que 
anuncia el contenido de la cinta es: 

Capitulo 8 Pagina 6 ■ 



BASIC: Palabras Clave 



FILEMANE BlockNumber 



Flag OK 



con el numero de bloque pertinente y el 'banderfh' que indica el modo 
en que se ha grabado el fichero. De acuerdo con: 

$ un fichero con programa en BASIC 

% un fichero en BASIC 'protegido' 

* un fichero con 'texto' de caracteres ASCII 

& un fichero en notacion binaria 

Si el fichero no fue grabado por BASIC, pueden aparecer otros caracteres. 

CLAVES asociadas: LOAD, RUN, SAVE. 



CHAIN 
CHAIN MERGE 

CHAIN <no*bre del fichero) [, texpresion de nueeros de line*)] 
CHAIN MERGE <notbre del fichero) [, texpresion de nuteros de line*)] 
[.DELETE <ga*a de nueeros de line*)] 

CHAIN "TEST", 350 

ACCION: El comando CHAIN permite el ENGARCE de programas 
'cargando' en la memoria y desde la cinta el programa mencionado en 
el comando; sustituyendo al programa existente, pero conservando los 
valores de las variables que hubiera en memoria. La expresion de numeros 
de linea le indica la linea del nuevo programa a partir de la que debe 
empezar la subsecuente ejecucion del programa. 

Con la variante CHAIN MERGE, ademas de cargar el programa, lo 
CONGREGA con el programa existente en memoria y manteniendo los 
valores y variables que haya. 

Si no se menciona ningun <nombre de fichero> , el BASIC extrae de la 
cinta el primer fichero valido que encuentre. Cuando el primer caracter 
anterior del nombre del fichero es el signo de admiracion (!) el BASIC 
quita este signo del nombre del fichero para buscar en cinta, y- suprime 
los mensajes que habitualmente genera durante el trasvase de cinta a 
memoria. 

Aunque tanto CHAIN como CHAIN MERGE retienen todas las variables 
presentes en memoria, se descartan las funciones definidas por el usuario 
asi' como los f icheros abiertos. Las condiciones ON ERROR se restauran, 
las series de datos se RESTORE a la primera DATA, y se olvidan las 
posibles DEFINT, DEFREAL, DEFSTR que hubiera en el programa anterior, 
y todos los bucles FOR y WHILE y los desvios a subrutinas pendientes 
se cancelan. Los ficheros protegidos no admiten la variante MERGE. 



■Capftulo 8 Pagina 7 



•} 



BASIC: Palabras Clave 



La opcion DELETE permite suprimir antes de la carga, la gama de numero 
de li'neas especificada en el parametro. 

CLAVES asociadas: LOAD, MERGE 



CHR$ 

CHR$(<expresion entera)) 
PRINT CHR*(100) 



FUNCION: Entrega como resultado el caracter equivalente al argumento 
numeral de la funcion, (usando el repertorio de caracteres AMSTRAD 
CPC464 resenado en el Apendice III). 

CLAVES asociadas: ASC, LEFT$, RIGHT$, MID$, STR$ 



CINT 

CINT (<expresion numeral >) 

10 n=57B. 76543 
20 PRINT CINT(n) 
RUN 
579 

FUNCION: El resultado es la parte entera redondeada del argumento, 
que debe estar en la gama -32768 a +32767. 

CLAVES asociadas: CREAL, INT, FIX, ROUND, UNT 



CLEAR 

CLEAR 
CLEAR 

ACCION: Coloca a ceros o a blancos todas las variables numericas y 
literales que haya en memoria. 



■Capftulo 8 Pagina 8 



BASIC: Palabras Clave 



CLG 

CL6[<tinta invisible)] 
CLG 

ACCION: Limpia la pantalla destinada a graficos. 
CLAVES asociadas: CLS, ORIGIN 

CLOSEIN 

CLOSE IN 

CLOSEIN 

ACCION: Cierra el fichero en cassette definido como fichero de ENTRADA 
Los comandos NEW y CHAIN MERGE tambien abandonan cualquier fichero 
que haya abierto. 

CLAVES asociadas: OPENIN, CLOSEOUT 

CLOSEOUT 

CLOSEOUT 
CLOSEOUT 

ACCION: Cierra el fichero en cassette definido como fichero de salida. 
CLAVES asociadas: OPENOUT, CLOSEIN 

CLS 

CLSUHnuaeral del cauce)] 
CLS 

ACCION: Limpia la 'vineta' definida en la pantalla a traves del cauce 
mencionado. 
■ Capftulo 8 Pagina 9 — 



BASIC: Palabras Clave 



CONT 

CONT 
CONT 



ACCION: Hace que SIGA la ejecucion del programa despues de *Break*, 
STOP, o END, siempre que el programa no se haya alterado posteriormente. 
Solo se admite como COMANDO. 



COS 

COS ((expresion numeral)) 

?C0S(34) 

-0. 848570274 



degs?cos(34) 
0. 829037573 



FUNCION: Calcula el COSENO del valor dado como argumento. El 
argurriento de la funcion se considera dado en 'radianes' a no ser que 
expli'cita y previamente se haya estipulado que sean 'grados', mediante 
el comando DEC 

CLAVES asociadas: IN, TAN, ATN, DEC, RAD 



Capftulo 8 Pagina 10- 



BASIC: Palabras Clave- 

CREAL 

CREflLKexpresion numeral)) 



5 DEFINT n 


10 n=75. 765 


20 d=n/34. 6 


30 PRINT d 


40 PRINT CLEAR <n) 


50 PRINT n. /55. 4 


run 


2. 19653179 


76 


1.37184116 


Ready 



FUNCION: Convierte el argumento en un numero real (en oposicion a 
numeros enteros). 

CLAVE asociada: CINT 



DATA 

DATA (lists de):<constante> 

10 REM Lista de correctores 

20 DIM Nombres*(10) 

30 DIM ftpellidos»U0> 

40 FOR n=l to (10) 

50 READ Nombres*(n) 

60 READ flpellidos»(n) 

65 PRINT Nombres*(n> ;" "fipellidos*(n) 

70 DfiTR Julio, Sierra Frade, Jul io, Legido Gonzalez, Leopoldo, 

Porras Larios, Enrique, Diaz Correa, Lourdes, Legido Gonzalez, 
Yolanda, Bellette Jimenez, figust in, Rodriguez Guaza.Juan, 
Martinez del Rio, Miguel ftngel, Ortega Plana, Yolanda, Cabel lo 
Jaime 

90 NEXT 

ACCION: Es una instruccion no ejecutable, que permite definir en el 
programa una serie de datos en la forma de constantes. Es una de las 
posibilidades mas ampliamente usada con BASIC, ya que permite agrupar 
ciertos datos en series encabezadas por la palabra reservada DATA que 
son 'secuencialmente' empleados en el programa, cada vez que se 
'apuntan' como valores de variables, mediante la instruccion READ. Las 
constantes de la instruccion DATA,deben ser coherentes con las variables 
de la instruccion READ correspondiente. 

CLAVES asociadas: READ, RESTORE 



■Capftulo 8 Pagina 11- 



BASIC: Palabras Clave ■ 



DEF FN 

DEF FN<nMbre>[(<paraaetros fomales))]={general expresion) 

10 DEF FNintereses (capital )=1. 14*capital 
20 INPUT "Cual es el capital resultante" jcapital 
30 PRINT "El capital prestado mas los intereses 
anuales" ;FNinteres<capital ) 

ACCION: BASIC permite que se definan y USEN funciones definidas por 
el usuario con varios argumentos pero un solo resultado literal o numeral. 
Esta instruction constituye la definicion de la function, que luego puede 
ser utilizada en la misma manera que las funciones 'intrinsecas' del BASIC 
(tales como COS, SIN, etc.). 

Para obtener el resultado de la funcion definida, basta nombrarla en el 
programa sustituyendo los argumentos 'formales' por los argumentos 
'actuales' en cada momento. La funcion debe definirse antes de que pueda 
ser citada en el programa. 

DEFINT 
DEFSTR 
DEFREAL 

DEFtype (gouts) de letras) 

DEFINT I-N 
DEFSTR fl,W-Z 
DEF REAL 

ACCION: Permite definir la clase de variables segun el primer caracter 
anterior de su nombre; y corresponde a variables enteras, literales y 
reales sucesivamente. Siempre el nombre de la variable debe comenzar 
con una letra, pero puede ser en minuscula o en mayuscula. 

CLAVES asociadas: LOAD, RUN, CHAIN, NEW, CLEAR 



DEG 

DEG 
DEG 



Capitulo 8 Pagina 12- 



BASIC: Palabras Clave 



ACCION: Fija para los argumentos de las funciones 'trigonometricas' 
la medida en grados. La condicion prescrita para omisiones y a la puesta 
en marcha es la medida en 'radianes' para los argumentos de las funciones 
trigonometricas. Este comando cambia esa prescripcion hasta que sea 
restaurada mediante los comandos CLEAR, RAD o se cargue un nuevo 
programa desde el cassette. 

CLAVES asociadas: RAD 



DELETE 

DELETE <gaaa de •uaeros de linea) 

DELETE 100-200 

ACCION: Los numeros de linea comprendidos en la gama mencionada 
se SUPRIMEN del programa existente en memoria. Si encuentra un error 
durante esta accion, se perderan las lineas ya suprimidas, usala con 
cuidado y comprueba la gama de numeros a suprimir antes de terminar 
el comando. 

CLAVES asociadas: NEW, CHAIN 



DI 

DI 

10 CLS 

20 TOG 

30 EVERY 10 GOSUB 100 

40 X1=RND*320:X2=RND*320 

50 Y=200+RND*200 

60 FOR X=320-X1 TO 320+X2 STEP 2 

70 DisPLOT 320,0, l: MOVE X-2, 

Y:PRIIMT " ";:M0VE X,Y:PRIIMT "#";:EI 
80 NEXT 
90 GOTO 40 
100 MOVE 320,0 
110 DROW X+8, Y-16, 
120 RETURN 

ACCION: Permite INHIBIR las senales de interrupcion generadas en los 
diversos circuitos de la maquina, exceptuando la interrupcion de programa 
♦Break*; y hasta que vuelvan a ser expli'citamente 'facultadas 1 , mediante 
el comando EI o lo sean implicitamente al concluir la subrutina incitada 
por la interrupcion, que debe terminar con el comando RETURN. 
— — Capftulo 8 Pagirta 13~ 



BASIC: Palabras Clave 



Se emplea cuando un programa desea continuar todas sus operaciones 
sin verse materialmente "interrumpido" por senales enviadas desde otros 
circuitos, como por ejemplo cuando dentro del programa hay dos 
instrucciones 'compitiendo' para apoderarse de una impresora, canal de 
sonido, etc. En el ejemplo, el programa principal y el parrafo que comienza 
en la instruccion 100 (que es puesto en marcha de acuerdo con la 
instruccion 30) estan compitiendo por la pantalla de graficos. 

CLAVE asociada: EI 



DIM 

DIN (lista de) : {variables subscritas) 

10 CLS: PRINT "Introduzca 5 nombres. ..'.": PRINT 

20 DIM B*(5) 

30 FOR N=l TO 5 

40 PRINT "No(nbre"N"por favor"; 

50 INPUT B*(N) 

60 NEXT 

70 FOR N=l TO 5 

80 PRINT "Muy inteligente por tu parte" ;B*(N) ; 

"haber comprado un CPC464" 
90 NEXT 

ACCION: Hace que se OCUPE el espacio destinado a tablas, de acuerdo 
con el tamano de la tabla especificada mediante los 'sufijos' que 
seleccionan los elementos de la tabla. BASIC exige que las tablas (ringlas) 
sean declaradas antes de poder usarlas en el programa, pero admite la 
carencia de definicion previa cuando no hay mas de 10 elementos en 
la tabla. 

Para seleccionar un elemento de la tabla, ha de usarse el mismo NOMBRE 
que se ha dado al establecer las dimensiones, y usar el sufijo o sufijos 
correspondientes a ese elemento. El tamano de las tablas solo esta limitado 
por la memoria disponible. 

CLAVES asociadas: ERASE 



Capftulo 8 Pagina 14- 



BASIC: Palabras Clave- 



DRAW 

DMU (x coordenadas),{y coordenadas) [, (tinta usada)] 
DRfiW 200,200, 13 

ACCION: 'Dibuja' un segmento en la pantalla a partir de la posicion 
corriente del cursor de graficos hasta la posicion senalada por los 
parametros coordenada x, y coordenada y. El parametro 'tinta' determina 
la usada al dibujar el segmento. 

Hay muchos ejemplos en el capitulo 5. 

CLAVES asociadas: DRAW, PLOT, PLOTR,MOVE, MOVER, TEST, TESTR, 
XPOS, YPOS, ORIGIN 



DRAWR 

DRftffi (increaento de x >, (increaento de y >t, (tinta usada)] 

DRflWR 200,200, 13 

ACCION: 'Dibuja' un segmento a partir de la posicion corriente del cursor 
de graficos y hasta la posicion dada por lo parametros coordenada x y 
coordenada y, en valores relativos a la posicion actual del cursor. 

CLAVES asociadas: DRAW, PLOT, PLOTR, MOVE, MOVER, TEST, TESTR, 
XPOS, YPOS, ORIGIN 



EDIT 

EDIT (nuaero de linea) 

EDIT 110 

ACCION: Coloca la lfnea de programa mencionada en el parametro, en 
el modo adecuado para que pueda ser EDITADA (revisada y corregida). 
Vease seccion 1.4. 

CLAVES asociadas: LIST 



-Capitulo 8 Pagina 15- 



BASIC: Palabras Clave 



EI 

EI 

EI 

ACCION: 'Faculta' las senales de interrupcion generadas por los circuitos 
internos y que estan 'inhibidas' por un comando DI anterior. 

CLAVES asociadas: DI 



END 

END 

END 

ACCION: 'Termina' el programa. En el BASIC AMSTRAD esta explicito 
un comando de FIN cuando llega a la ultima linea de programa. Con el 
comando END se cierran todos los ficheros en cassette y se vuelve al 
modo directo de ingreso de comandos (los 'chorros de notas' pendientes 
de ser emitidos, lo haran hasta que queden vacios). 

CLAVES asociadas: STOP 



ENT 

EOT (nuaero de envoltura) £, (secciones de envoltura)] 

10 ENT 1, 100,2,20 

20 SOUND 1,100,1000,4,0,1 

ACCION: Es posible definir la envolvente de tono correspondiente a una 
'nota musical' generada con el comando SOUND. La envolvente de tono 
define las variaciones de frecuencia que han de tener lugar a lo largo 
de la duracion de la nota. Vease el capitulo 6 y el Apendice VII para 
una descripcion completa. 

El parametro <numero de envolvente> ha de ser una expresion numeral 
entera cuyo valor resultante debe estar en la gama 1 a 15, e identifica 
esa envolvente de tono. Si se usa un numero negativo, se repetira esa 
envolvente de tono hasta que concluya el sonido generado. 



Capitulo 8 Pagina 16- 



BASIC: Palabras Clave ■ 



Se pueden dar hasta cinco parametros denominados <secciones> y 
constituidos a su vez por otra serie de tres parametros denominados: 
<cuenta de pasos>, <altura del paso>, <tiempo del paso>, 
o bien por series de dos parametros, denominados: <periodo de tono> , 
<tiempo de paso>. 

La primera de las variantes especifica un cambio RELATIVO en relacion 
con el tono usado en el paso anterior. La segunda especifica un tono 
en valor absoluto para todo el paso. 

Los parametros indican: 

cuenta de pasos da el numero de pasos en esa seccion, y debe ser 
un numeral entero en la gama a 239. 

altura del paso da el incremento o decremento sobre el tono del paso 
anterior, y es una expresion entera dentro de la gama -128 a +127. 

tiempo del paso indica la duracion del paso en centesimas de segundo, 
y debe ser una expresion entera en la gama a 255 (considerando 
el igual que el 256). 

perfodo de tono da el nuevo valor para el periodo (relacionado con 

la inversa de la frecuencia) del tono, y ha de estar en la gama a 4095 

En el comando SOUND se hace que se genere una nota musical con un 
determinado tono inicial, y luego se pueden especificar 1 de 15 envolventes 
de tono para vivificar dicha nota. Si no se especifica ninguna envolvente, 
o el numero que se menciona en el comando no corresponde a ningun 
identificativo de envolvente, el tono permanecera constante a lo largo 
de la duracion de la nota. La envolvente de tono no tiene ningun efecto 
sobre la duracion del sonido generado. Si quedan pasos de la envolvente 
de tono cuando concluye el sonido, simplemente son despreciados. 

Las envolventes de tono identificadas con numeros negativos, indica que 
seran repetidas incesantemente hasta que concluya el sonido pertinente. 

Las parametros de las envolventes de tono, se evaluan cuando se ejecuta 
el comando y se conservan los resultados para uso posterior, cuando se 
cita esa envolvente. Pero por definir envolventes de tono no se provoca 
que se re-ejecute el comando de sonido correspondiente. Cada vez que 
se declara una envolvente de tono, los valores concernientes a la envolvente 
que posee el mismo numero identificativo, son abandonadas. 

Cambiando una envolvente mientras un sonido generado la esta usando, 
(o esta pendiente de usarla), pero ya ha sido incluida en el 'chorro' de 
notas a emitir por altavoz, los efectos no estan determinados (y puede 
que sean interesantes). 

Especificando una envolvente con un numero identificativo pero sin ninguna 
seccion, cancela los valores corrientes para esa envolvente. Cualquier 
uso posterior de la envolvente sera desechado y se utilizaran los parametros 
prescritos para omisiones. 

Capftulo 8 Pagina 17 — 



CLAVES asociadas: ENV, SOUND 

ENV 

ENV (nuaero de awoltura) [, {secciones de envoltura)] 

10 ENV 1, 100,2,20 

20 SOUND 1,100,1000,4,1 



BASIC: Palabras Clave 



L 



ACCION: Cuando se genera un sonido, es posible variar su volumen a 

lo largo de la duracion del sonido, definiendo una envolvente de volumen. 

Se usa el comando ENV con una serie de tres parametros, denominados: 

<cuenta de pasos>, <altura de paso>, <tiempo del paso> 

y define como vari'a el volumen en los sucesivos pasos. La cuenta de 
pasos debe ser una expresion entera de a 127; la altura del paso una 
expresion entera en la gama -128 a +127, y el tiempo del paso se medira 
en unidades de centesimas de segundo, y sera una expresion entera dentro 
de la gama 1 a 256. 

El <numero de envolvente> es el parametro 'identificador' de dicha 
envolvente y ha de ser un numeral entero dentro de la gama 1 a 15. 

Se puede usar una serie de cinco parametros denominados secciones de 
envolvente, y a su vez, cada uno de ellos puede ser una serie de tres 
parametros, denominados cuenta de pasos, altura del paso, tiempo del 
paso, o bien una serie de dos parametros denominados: 

envolvente prescrita, perfodo de envolvente. 

La primera de las variantes, especifica una seccion de envolvente cuyos 
parametros estan controlados PROGRAMALMENTE, significando lo 
siguiente: 

cuenta de pasos establece el numero de pasos de que consta la seccion 
y ha de ser una expresion numeral entera en la gama a 127. 

altura del paso da el incremento o decremento de la amplitud del 
paso en relacion con la amplitud del paso anterior, y debe ser un 
valor entero en la gama -128 a +127. 

(Si la cuenta de pasos es cero, el valor estipulado para la amplitud 
corresponde con el valor con que haya terminado la seccion de 
envolvente anterior, o con el valor de arranque resenado en el comando 
SOUND). 

tiempo de paso especifica la duracion del paso en centesimas de 
segundo, y debe ser una expresion numeral entera dentro de la gama 
a 255 (siendo el considerado como 256). 

Capftulo 8 Pagina 1 8 



BASIC: Palabras Clave 



La segunda variante especifica una seccion de envolvente que va a ser 
ejecutada bajo control CIRCUITAL del equipo, siendo: 

envolvente prescrita el valor que se aloja en el 'registro de formas 
de envolvente' (el registro 15 en notacion octal). 

peribdo de envolvente es el valor que se aloja en el 'registro de 
peri'odo de envolvente' (registros 13 y 14, en notacion octal). 

Los valores de las envolventes prescritas, no tienen un tiempo de paso 
asociado, por lo que se ejecuta inmeditamente la siguiente seccion de 
la envolvente. Es aconsejable que en la siguiente seccion haya una pausa 
de la duracion adecuada (y si no hubiera siguiente seccion, se efectua 
una pausa de dos segundos). 

El comando SOUND estipula el volumen inicial de la NOTA y como 
parametro se puede especificar 1 de 15 envolventes de volumen. Si no 
se especifica ninguna, o una que no haya sido previamente definida e 
identificada, el volumen permanecera constante a lo largo de la duracion 
del sonido. 

Estipulando en el parametro de altura del paso un 0, con una cuenta de 
pasos que sea distinto de 0, se consigue que el volumen permanezca 
constante e igual al ultimo valor estipulado, durante toda la duracion 
del paso. 

Los parametros de la envolvente de volumen se evaluan cuando se ejecuta 
el comando, y se conservan los resultados para uso posterior, pero usar 
una envolvente i de volumen no implica que sea re-ejecutado el comando. 

Cada vez que se estipula una envolvente de volumen determinada, se 
pierden los valores previos. Cambiando una envolvente mientras algun 
sonido la esta usando, o cuando hay una nota pendiente de ser emitida, 
producira efectos indeterminados (pero posiblemente interesantes). 

Especificando una envolvente sin secciones, cancela cualquiera de las 
estipulaciones previas. Cualquier uso posterior de la envolvente sera 
ignorado, y los parametros prescritos para omisiones, usados en su lugar. 

CLAVES asociadas: ENT, SOUND 



Capftulo 8 Pagina 19—' 



BASIC: Palabras Clave 



EOF 

EOF 

PRINT EOF 
-1 

FUNCION: Examina si el cabezal lector del cassette ha alcanzado el 
Final del FIchero, cuando lo ha hecho, el resultado es -1 (cierto), y en 
caso contrario (falso). 

CLAVES asociadas: OPENIN 



ERASE 

ERASE (lista de;<noabre de variable)) 
ERASE A, B* 

ACCION: Cuando ya no se requiere usar en el programa una TABLA 
(ringla), puede conseguirse espacio LIBRE en la memoria, con el comando 
ERASE, para disponer de mayor espacio en memoria. 

CLAVE asociada: DIM 

ERR 
ERL 

ERR 
ERL 

10 CLS 

20 ON ERROR GOTO 1000 

30 DATA LOURDES,YOLANDA,LETICIA,CONSUELO, ANTONIA 

40 READ A* 

50 PRINT A* 

60 GOTO 40 

70 REM que empieza la deteccion de errores 

1000 IF ERR=4 THEN PRINT "No tengo datos que copiar" 

1010 IF ERL<70 AND ERL>20 THEN PRINT 

" en las lineas 30-60" 

1020 END 



* — Capftulo 8 Pagina 20 



BASIC: Palabras Clave 



FUNCIONES: Estas funciones son autenticas variables (y no es preciso 
darles ningun argumento), y sus valores corresponden al 'numero de error' 
y 'numero de li'nea' donde se detecto el error durante la ejecucion del 
programa. Consulta la lista de mensajes de error en el Apendice VIII. 

CLAVES asociadas: ON ERROR, ERROR 



ERROR 

ERROR {expresion entera) 

ERROR 17 

COMANDO: Inicia la accion de error con un numero de error dado. El 
error puede ser uno ya usado y reconocido por BASIC (Apendice VIII) 
en cuyo caso la accion adoptada es la misma que se adoptaria si tal error 
hubiera sido detectado por BASIC. Los numeros de error superiores a 
aquellos reconocidos por BASIC pueden ser usados por el programa para 
sefialar sus propios errores. 

CLAVES asociadas: ON ERROR, ERR, ERL 



EVERY 

EVERY (expresion entera) [, (expresion entera)] BOSUB (nuaero de linea) 

EVERY 500,2 GOSUB 50 

ACCION: El CPC464 mantiene un reloj para medida del tiempo, que puede 
usar para preparar cuatro 'cronometros' diferentes. El comando EVERY 
obliga a BASIC a examinarlos regularmente, y a hacer que cada cierto 
intervalo de tiempo se desvie del programa para ejecutar la subrutina 
citada en la instruccion. El segundo parametro especifica el 'cronometro' 
a emplear, por lo que debe estar en la gama a 3, y el primer parametro 
cada cuanto tiempo tiene que efectuar la subrutina cuyo numero de lfnea 
viene reflejado por el parametro del comando GOSUB asociado. 

CLAVES asociadas: AFTER, REMAIN 



-Capftulo 8 Pagina 21- 



BASIC: Palabras Clave — \ 



EXP 

EXP Uexprtsion nuteral)) 

PRINT EXP (6. 876) 
968. 743625 

FUNCION: El resultado es el numero E elevado a la potencia dada por 
el argumento. (El numero E es la base de los logaritmos naturales y 
aproximadamente es 2.7182818). 

CLAVE asociada: LOG 



FIX 

FIX ((expresion numeral)) 

PRINT FIX (9. 99999) 
9 

FUNCION: A diferencia de la funcion CINT, la funcion FIX da como 
resultado exactamente la parte entera de su argumento. Es decir, los 
digitos que aparecen antes del punto decimal, (y por tanto, sin ningun 
redondeo, como en la funcion CINT). 

CLAVES asociadas: CINT, INT, ROUND 



FOR 

FOR (variable siiple) = (inicio) TO (fin) [STEP <salto>] 

FOR DflY=l to 5 STEP 2 

ACCION: Marca el comienzo de un parrafo del programa que debe ser 
REPETIDO el numero de veces determinado por la variable simple que 
controla el 'bucle', mediante los valores inicial y final que ha de tener, 
y del 'salto' que debe efectuar a cada ronda. Si no se especifica el 
parametro STEP se toma como 1. 

CLAVES asociadas: NEXT 
Capftulo g Pagina 22 



BASIC: Palabras Clave 



FRE 

FRE ((expresion nuieral)) 
FRE ({expresion literal)) 
PRINT FRE(O) 

PRINT FRE<""> 

FUNCION: El resultado refleja la cantidad de memoria que no ha sido 
usada por BASIC, cuando el argumento de la funcion es un numeral. 
Cuando el argumento es literal, v.g. FRE(" ") se provoca una "recogida 
de basuras" antes de calcular el espacio disponible en memoria. 



GOSUB 

GOSUB (nueero de linea) 

GOSUB 210 

ACCION: Hace que BASIC se 'desvie' (VAya Y venGA) a la subrutina 
que comienza en esa linea especificada. 

CLAVE asociada: RETURN 



GOTO 

GOTO (nueero de linea) 
SOTO 90 

ACCION: Hace que BASIC 'brinque' al numero de linea especificado. 
(VAYA, pero no vuelva aqui). 



Capftulo 8 Pagina 23--' 



BASIC: Palabras Clave 



HEX$ 

HEX* ((expresion entera positiva>)[, (expresion enters)]) 

PRINT HEX* (65534) 
FFFE 

FUNCION: El mismo argumento expresado en notacion HEXADECIMAL. 
(Apendice II). 

CLAVES asociadas: BIN$, STR$ 



HIMEM 

HIMEN 

7HIMEN 
43903 

FUNCION: Corresponde a una de las VARIABLES del SISTEMA, que 
determina la direccion maxima usada por BASIC, y puede tambien 
emplearse en expresiones numerales en la forma normal. 

Antes de alterar el valor de la maxima direccion de memoria, usando 
el comando MEMORY, es aconsejable examinar el valor de HIMEM, 
simplemente con mm=HIMEM. Posteriormente puedes estipular que el 
sistema vuelva a emplear esa direccion, mediante el comando 
MEMORY mm. 

CLAVES asociadas: FRE, MEMORY 



IF 

IF 

IF (expresion logica) THEN (opcion) [ELSE (opcion)] 

IF (expresion logica) GOTO (nuaero de linea) [ELSE (opcion)] 

IF fl>B THEN fl=C ELSE fl=D 

IF A>B GOTO 1000 ELSE 300 



Capftulo 8 Pagina 24- 



BASIC: Palabras Clave 



ACCION: Hace que se examine SI el resultado de la expresion logica 
es 'cierto' o 'falso'; y que se ejecuten las acciones reflejadas despues 
de la palabra THEN, cuando el resultado es cierto, o que salte a la parte 
ELSE, o simplemente a la siguiente li'nea de programa. 

Estas instrucciones condicionales pueden 'anidarse', sin mas limitacion 
que la longitud de li'nea, sin mas que incluir una instruccion IF dentro 
de la serie de comandos que concierne a la parte THEN o a la parte 
ELSE de otra instruccion IF anterior. 

CLAVES asociadas: THEN, ELSE, GOTO, OR, AND, WHILE 



INK 

M <ink>,<color)[,<color>] 
INK 0, 1 

ACCION: Depende del modo corriente de pantalla (Capi'tulo 5), la gama 
de valores que pueden tener los parametros; pero cambia el numero de 
color, usado para la TINTa de la 'pluma' usada o del TINTe del 'papel' 
empleado, de acuerdo con la tabla de numeros de colores del Apendice VI. 

CLAVES asociadas: PEN, PAPER 



INKEY 

INKEY ((expresion altera)) 

10 CLS:IF INKEY (55) =32 THEN 30 ELSE 20 
20 CLS;G0T0 10 

30 PRINT "Estas presionando" CSHIFT3 y V" 
40 FOR t=l TO 1000: NEXT: GOTO 10 

FUNCION: El resultado de la funcion depende del estado en que se 
encuentre la tecla cuyo <codigo de entrada> corresponde al argumento 
de la funcion. El teclado se escruta completamente en dos centesimas 
de segundo, y con esta funcion se puede INDAGAR el estado de una tecla 
determinada. Es particularmente util para detectar respuestas S/N, dado 
que la pulsacion de la tecla SHIFT puede no afectar al resultado, si se 
usa una de las opciones de interpretacion. En el ejemplo anterior se 
detecta si estan en ese momento pulsadas las dos teclas SHIFT y V. 

Capftulo 8 Pagina 25-J 



BASIC: Palabras Clave 



Los resultados de la funcion corresponden con: 



Valor entregado 

-1 



32 

128 

160 



SHIFT 

cualquiera 
NO PULSADA 
PULSADA 
NO PULSADA 
PULSADA 



CTRL 

cualquiera 
NO PULSADA 
NO PULSADA 
PULSADA 
PULSADA 



KEY 

NO PULSADA 

PULSADA 

PULSADA 

PULSADA 

PULSADA 



CLAVES asociadas: INPUT, INKEY$ 



INKEY$ 

10 CLS 

20 PRINT "Eres un tipo inteligente (S o N) ?" 

30 a$=INKEY*: IF a*="" GOTO 30 

40 IF a*="N" OR a*="n" THEN PRINT 

"entonces debes comp ra rme !" :END 
50 IF a*="S" OR a*="s" THEN 

PRINT "Eres excesivamente modesto ! ! ! " :END 
60 GOTO 20 

FUNCION: Suministra como resultado el caracter ASCII correspondiente 
a la ultima tecla que se haya pulsado (o la que este pulsada en el momento 
en que se ejecuta el comando. Si no hay ninguna tecla pulsandose, ni 
ninguna pulsacion anterior que este pendiente de tratar, el resultado es 
el 'litero vacio' (" "). Es util para no tener que esperar a que el usuario 
pulse la tecla ENTER, y poder proseguir el programa inmediatamente. 
En el ejemplo se examina el resultado constantemente en la linea 30. 

CLAVES asociadas: INPUT, INKEY 



INP 

INP Hmuero del portal)) 

PRINT INP(&FF77) 

FUNCION: El resultado es el valor depositado en el 'portal de entrada' 
cuya direccion viene dada por el argumento de la funcion. 

CLAVES asociadas: OUT, WAIT 



Capitulo 8 Pagina 26- 



BASIC: Palabras Clave 



INPUT 

INPUT [Knuwral del cauce),][;][<constante literal entre cnilladas>;]<lista 
de>: [variable]) or INPUT [fmneral del cauce),][;][(constante literal entre 
CMilladas),]<lista de): variable] > 

10 CLS 

20 INPUT "Dame dos numeros, separados por una 

coma";A,B 
30 PRINT ft=B THEN PRINT "Los dos numeros son 

iguales" 
40 IF fl>B THEN PRINT fi "es mayor que" B 
50 IF ft<B THEN PRINT A "es menor que" B 
60 CLEAR: GOTO 20 

ACCION: INGRESA datos procedentes de los circuitos de entrada del 
ordenador, a traves del CAUCE cuyo numero se menciona en la instruccion, 
y los IMPONE como valores de las variables mencionadas en la instruccion. 
La mayor parte de las veces se usa para ingresar datos procedentes del 
teclado, y ofrece la posibilidad de incluir un mensaje para que sea 
'expuesto' usando el mismo CAUCE de transferencia. Si se incluye un 
punto y coma despues del mensaje a exponer, se obliga a que lo termine 
con un signo de interrogacion, mientras que la coma suprime dicho signo. 
Similarmente, un punto y coma antes de dicho mensaje, impide que se 
genere un 'retorno de carro' al final de los datos que se estan imponiendo 
por teclado. Los datos ingresados deben ser coherentes con la variable 
sobre los que se imponen; en caso contrario (y el mas frecuente es teclear 
O en lugar de 0) y se saca el aviso: 

?Redo from start 

repitiendo ademas el mensaje que hayas especificado en la instruccion, 
para que puedas 'volver a teclear desde el principio'. 

Todas las respuestas deben concluir pulsando la tecla ENTER. 

Cuando se indica un parametro de CAUCE correspondiente a la ductora 
de cassette, no tiene objeto incluir el mensaje de ayuda, pero si se 
especifica, sera desechado por los programas internos de gestion del^ 
cassette; por lo que el mismo programa puede ingresar datos a traves 
de distintos cauces, sin mas que cambiar el numeral identificativo de 
cauce. 

Cada dato recuperado de un fichero sera impuesto como valor de cada 
variable de la lista resenada en la instruccion, secuencialmente; y deben 
ser ambas de la misma clase. Para una variable numerica, el dato debe 
estar terrninado por una coma, un retorno de carro, un espacio en bianco, 
o la marca de final de fichero. Para una variable literal, el dato sera 
tornado con su autentica indole de litero, cuando este encerrado entre 
comillas. (Y queremos recalcar que litero implica 'al pie de la letra', 
sin tocar, alterar o hacer nada con el). 



■Caprtulo 8 Pagina 27- 



BASIC: Palabras Clave 



Cuando no estan entrecomillados, los datos literales se consideran 
terminados en las mismas situaciones mencionadas para los datos numericos. 

CLAVES asociadas: LINE INPUT, READ, INKEY$ 



INSTR 

INSTR([(expresion entera), Hexpresion literal), (expresion literal)) 
PRINT INSTR (2, "BGNflNA", "fiN") 

FUNCION: Sirve para examinar el literal dado por el primer argumento, 
y determinar donde empieza a aparecer el literal dado por el segundo 
argumento, el valor resultante es la posicion correspondiente al segundo 
argumento. El parametro numerico opcional indica la posicion a partir 
de la que debe comenzar la busqueda; y si se omite, la busqueda comienza 
a partir del primer caracter del argumento donde busca. 

CLAVES asociadas: MID$, LEFT$, RIGHT$ 

INT 

INT Hexpresion nuaeral)) 
PRINT INT<-1.995) 



FUNCION: El resultado es el numero entero inmediatamente inferior 
al valor del argumento. Por lo tanto, es igual que la funcion FIX si el 
argumento es positivo, pero con argumentos negativos da como resultado 
un numero entero negativo cuyo valor absoluto es la parte entera 
redondeada del argumento. 

CLAVES asociadas: CINT, FIX, ROUND 



JOY 

JOY ((expresion entera)) 

10 IF J0Y(0>=8 THEN GOTO 100 



■Capftulo 8 Pagina 28- 



BASIC: Palabras Clave 



INPUT 

INPUT [Knuwral del cauce>,][;H<constante literal entre cotilladas>;]<lista 
de): [variable]) or INPUT Ctnuaeral del cauce>,H;][<constante literal entre 
CMi 1 ladas> , 1 <1 ista de) : variable] ) 

10 CLS 

20 INPUT "Dame dos numeros, separados por una 

coma";fi, B 
30 PRINT A=B THEN PRINT "Los dos numeros son 

iguales" 
40 IF fi>B THEN PRINT fl "es mayor que" B 
50 IF fl<B THEN PRINT ft "es menor que" B 
60 CLEAR: GOTO 20 

ACCION: INGRESA datos procedentes de los circuitos de entrada del 
ordenador, a traves del CAUCE cuyo numero se menciona en la instruccion, 
y los IMPONE como valores de las variables mencionadas en la instruccion. 
La mayor parte de las veces se usa para ingresar datos procedentes del 
teclado, y ofrece la posibilidad de incluir un mensaje para que sea 
'expuesto' usando el mismo CAUCE de transferencia. Si se incluye un 
punto y coma despues del mensaje a exponer, se obliga a que lo termine 
con un signo de interrogacion, mientras que la coma suprime dicho signo. 
Similarmente, un punto y coma antes de dicho mensaje, impide que se 
genere un 'retorno de carro' al final de los datos que se estan imponiendo 
por teclado. Los datos ingresados deben ser coherences con la variable 
sobre los que se imponen; en caso contrario (y el mas frecuente es teclear 
O en lugar de 0) y se saca el aviso: 

?Redo from start 

repitiendo ademas el mensaje que hayas especificado en la instruccion, 
para que puedas 'volver a teclear desde el principio'. 

Todas las respuestas deben concluir pulsando la tecla ENTER. 

Cuando se indica un parametro de CAUCE correspondiente a la ductoia 
de cassette, no tiene objeto incluir el mensaje de ayuda, pero si se 
especifica, sera desechado por los programas internos de gestion del 
cassette; por lo que el mismo programa puede ingresar datos a traves 
de distintos cauces, sin mas que cambiar el numeral identificativo de 
cauce. 

Cada dato recuperado de un fichero sera impuesto como valor de cada 
variable de la lista resenada en la instruccion, secuencialmente; y deben 
ser ambas de la misma clase. Para una variable numerica, el dato debe 
estar ternminado por una coma, un retorno de carro, un espacio en bianco, 
o la marca de final de fichero. Para una variable literal, el dato sera 
tornado con su autentica indole de lltero, cuando este encerrado entre 
comillas. (Y queremos recalcar que litero implica 'al pie de la letra', 
sin tocar, alterar o hacer nada con el). 

Capftulo 8 Pagina 27 — 



BASIC: Palabras Clave 



Cuando no estan entrecomillados, los datos literales se consideran 
terminados en las mismas situaciones mencionadas para los datos numericos. 

CLAVES asociadas: LINE INPUT, READ, INKEY$ 



INSTR 

INSTR ([(expresion entera),] {expresion literal), {expresion literal)) 
PRINT INSTR (2, "BftNflNft", "RN") 

FUNCION: Sirve para examinar el literal dado por el primer argumento, 
y determinar donde empieza a aparecer el literal dado por el segundo 
argumento, el valor resultante es la posicion correspondiente al segundo 
argumento. El parametro numerico opcional indica la posicion a partir 
de la que debe comenzar la busqueda; y si se omite, la busqueda comienza 
a partir del primer caracter del argumento donde busca. 

CLAVES asociadas: MID$, LEFT$, RIGHT$ 

INT 

INT ({expresion numeral)) 

PRINT INTC-1.995) 
-2 

FUNCION: El resultado es el numero entero inmediatamente inferior 
al valor del argumento. Por lo tanto, es igual que la funcion FIX si el 
argumento es positivo, pero con argumentos negativos da como resultado 
un numero entero negativo cuyo valor absoluto es la parte entera 
redondeada del argumento. 

CLAVES asociadas: CINT, FIX, ROUND 



JOY 

JOY ((expresion entera)) 
10 IF J0Y(0)=8 THEN GOTO 100 



■Capitulo 8 Pagina 28- 



BASIC: Palabras Clave 



FUNCION: Proporciona como resultado un numero decimal entero que 
'calibra en binario' el estado del control de juegos correspondiente al 
argumento. La 'calibracion binaria' responde a la siguiente tabla: 





Bit 


Decimal 





Arriba 


1 


1 


Abajo 


2 


2 


Izquierda 


k 


3 


Derecha 


8 


4 


Gatillo 2 


16 


5 


Gatillo 1 


32 



CLAVES asociadas: INKEY 



KEY 

KEY (expresion altera), [CHR*(n)+] (expresi on literal) [CH»(n)] 

KEY 140, "RUN"+CHR*(13) 

COMANDO: Asocia a la TECLA identificada por el primer parametro 
-cuyo valor corresponde al codigo de entrada-, la expresion literal resefiada 
como segundo parametro; de manera que cada vez que se pulse esa tecla, 
se consigue el mismo efecto que si se hubiera tecleado directamente 
toda la expresion literal asociada. 

Se suele decir que la tecla es 'programable', o que es una tecla 'funcional 1 , 
o que su codigo es 'expandible'. 

En el CPC464 hay 32 posibles teclas, con codigos de entrada en la gama 
128 a 159 (Apendice III), y se le pueden asociar expresiones literales con 
32 caracteres de longitud como maximo; y siempre que el numero total 
de caracteres empleados en todas las asociaciones no sobrepase de 120. 

CLAVES asociadas: KEY DEF 



KEY DEF 

KEY DEFtaueero de tecla), (repiteK, <noreal)[, (turns) [, (control)]]] 

KEY DEF 46,1,63 



Capitulo 8 Pagina 29-^ 



BASIC: Palabras Clave 



ACCION: Este comando REDEFINE el codigo de entrada asignado a la 
tecla dada por el primer parametro, uno o varios codigos de entrada de 
acuerdo con los parametros opcionales que se especifiquen en este comando. 

El ejemplo anterior convierte la tecla marcada con N para que al pulsarla 
se interprete lo mismo que si se pulsa la tecla marcada ?. (El codigo 
de entrada (Apendice III) de la tecla n usada en minusculas, mientras que 
el codigo ASCII decimal del caracter ? es 63). Para dejar esa tecla en 
sus condiciones normales: 

KEY DEF 46, 1, 110 

ya que el codigo ASCII decimal del caracter n es 110. 
CLAVES asociadas: KEY 



LEFT$ 

LEFT$((expresion literal), (expresion entera)) 

10 CLS 

20 A$ = "AMSTRAD" 

30 B* = LEFT*(A$, 3) 

40 PRINT B* 

RUN 

(LIMPIflR PflNTALLA) 

AMS 
Ready 

FUNCION: El resultado es una constante literal, obtenida segregando 
tantos caracteres ANTERIORES del argumento literal como indique el 
argumento numerico. Si la longitud del argumento literal es insuficiente, 
el resultado es todo el argumento. 

CLAVES asociadas: MID$, RIGHT$ 

LEN 

LEN Hexpresion literal)) 

A*="0MSTRAD": PRINT LEN (A*) 

FUNCION: El resultado es el numero de caracteres que forman el argumento 
de la funcion. Estan incluidos todos los caracteres, incluyendo los espacios 
en bianco (ya que el argumento es una constante literal). 



Capitulo 8 Pagina 30- 



BASIC: Palabras Clave 



LET 

[LET] (variable) = (expresion) 

LET X=100 

ACCION: Asigna a la variable mencionada la constante que resulte de 
evaluar la expresion colocada a la derecha del signo igual. La palabra 
reservada LET es un "recuerdo" del BASIC original, pero en el BASIC 
AMSTRAD es opcional y el ejemplo anterior puede simplemente escribirse 
como: X=100 



LINE INPUT 

LINE INPUT [(ttnuaeral del cauce>,][;] [constante literal entre cotilladas;] (variable literal) 
LINE INPUT [(Knuaeral del cauce), 3 [;] [constante literal entre cotilladas;] (variable literal) 

LINE INPUT A* 

LINE INPUT "NOMBRE";N$ 

ACCION: Ingresa toda una LINEA desde el CAUCE indicado, y la IMPONE 
como valor de la variable literal mencionada en la instruccion. El cauce 
prescrito para omisiones es, como siempre, igual en todo que el comando 
INPUT, excepto en que todo lo que se IMPONGA es dado como valor 
de la variable, incluyendo los delimitadores como comas y espacios en 
bianco, antes del retorno de carro. 

CLAVES asociadas: READ, INPUT, INKEY$, INPUT$ 



LIST 

LIST [(gaaa de nuaeros de linea)][,fnuaeral del cauce)] 

LIST 100-1000, #1 



-Capftulo 8 Pagina 31 ■ 



BASIC: Palabras Clave 



ACCION: El comando LIST hace que se LISTE a traves del CAUCE 
especificado, las lineas de programa incluidas en la gama mencionada 
en el comando. El cauce #0 es el prescrito y corresponde a la pantalla 
del monitor; el cauce #8 corresponde a la impresora. 

Puede suspenderse temporalmente el listado, pulsando una vez la tecla 
ESC y reanudarse pulsando la barra espaciadora. Una doble pulsacion 
ESC permitira ESCAPARSE definitivamente. 

Ademas puede dirigirse el listado a traves de los cauces previamente 
definidos en pantalla para que aparezcan en ventanas separadas y asi' 
servir de ayuda en la depuracion de programas sin tener que sobre-escribir 
todo el area de pantalla. 

Puede suprimirse la COTA superior de la gama para obtener el listado 
desde un numero de linea hasta el final; o suprimirse la COTA inferior 
de la gama para obtener el listado desde el principio hasta un numero 
de linea; vg. 

LIST-200 or LIST 30- 



LOAD 

LOfiD <no«bre de fichero>[, (expresion direccional)] 
LOAD "INVENT" 

ACCION: RECUPERAR un programa previamente DEPOSITADO en la 
cinta cassette, se usa este comando LOAD para hacer que se CARGUE 
en la memoria del ordenador, reemplazando cualquier programa que hubiera 
en ella, o si se usa el parametro opcional con una direccion determinada, 
cargar un fichero binario en la memoria a partir de la direccion mencionada 
Vease el capftulo 2. 



LOCATE 

LOCATE [finuwral de cauce), ]<x coordenada>,<y coordenada) 

10 MODE 1 

20 LOCATE 20, 12 

30 PRINT CHR*(249) 



"Capltulo 8 Pagina 32" 



BASIC: Palabras Clave 



ACCION: El comando LOCATE hace que el ordenador UBIQUE el cursor 
de texto en la posicion correspondiente a las coordenadas absolutas 
mencionadas en el comando. Si se especifica el numeral de cauce, el 
origen de coordenadas sera el correspondiente a la esquina superior 
izquierda de la ventana asociada a dicho cauce. El cauce prescrito para 
omisiones es toda la pantalla del monitor. 

CLAVES asociadas: WINDOW 



LOG 

LOG ( (expresion nuaeral)) 

?L0G(9999) 
9.21024037 

FUNCION: Calcula el logaritmo natural del argumento; y el resultado 
es una constante numerica real aunque el argumento sea entero. 

CLAVES asociadas: EXP, LOG10 



LOG10 

LOG 10(<expresion nuaeral)) 

?L0G1 0(9999) 
3. 99995657 

FUNCION: Calcula el logaritmo en base 10 del argumento; y el resultado 
es una constante numerica real aunque el argumento sea entero. 

CLAVES asociadas: EXP, LOG 



Capftulo 8 Pagina 33- 



BASIC: Palabras Clave 



LOWER$ 

LONER* (<expresion literal)) 

fi*="flMSTRftD" : PRINT LOWER* (ft*) 
amst rad 

FUNCION Convierte a letras minusculas todas las letras mayusculas que 
aparezcan en el argumento. 

Se utiliza para uniformizar las posibles respuestas ingresadas por teclado. 
CLAVE asociada: UPPER$ 

MAX 

MflX((lista de: (expresion nuaeral)) 

10 n=6S 

20 PRINT MftX(l,n, 3, S, 4,3) 

FUNCION: El resultado es el numero con valor absoluto MAXIMO que 
aparezca en la lista argumento. 

CLAVE asociada: MIN 



L 



MEMORY 

MEMORY <expresion direccional) 

MEMORY «-20ftfi 

ACCION: Cambia la cantidad de memoria disponible para el programa 
BASIC, estableciendo como 'cima' de direcciones la que se menciona 
en el comando. 

CLAVES asociadas: HIMEM, FRE 



Capftulo 8 Pagina 34" 



BASIC: Palabras Clave 



MERGE 

NER6E [{notbre de fichero)] 

MERGE "PLfiN" 

ACCION: El comando MERGE hace que el ordenador CONGREGE en 
memoria dos programas: el ya existente en memoria y el procedente 
del cassette que habra de tener el nombre mencionado en el comando. 
Si no se menciona ninguno, el BASIC intentara CONGREGAR el primer 
fichero de la clase adecuada que encuentre en la cinta. 

Si el primer caracter del nombre de fichero es el signo de admiracion, 
prescindira de el al buscar el fichero en la cinta y de los habituales 
mensajes que genera para facilitar el manejo del cassette. 

Cuando deseas anadir un programa en cinta al que ya tienes en memoria, 
sin que este se vea sobre-escrito por el que anades, deberas RENUMERAR 
adecuadamente el programa que tienes en memoria para que sus numeros 
de li'nea no coincidan con el programa que anades. 

Se cancelan todas las variables, funciones de usuario, y ficheros. Se 
cancelan tambien todas las definiciones de clases de variables, y se 
arredran todos los punteros internos. Ademas se dejan sin efecto todas 
las posibles pautas para casos de error. 

Observa que no podras CONGREGAR ficheros, si el procedente de la 
cinta no fue previamente GUARDADO utilizando la clase A (ficheros 
ASCII). 

CLAVES asociadas: LOAD, CHAIN MERGE, SAVE 



MID$ 

NIDi< {literal, (expresion entera) [(expresion entera)]) 

fl*="fiMSTRftD": PRINT MID* (ft*, 2, 4) 

MSTR 

ft*="fiMSTRftD" : b*=MID* (ft*, 2, 4) : PRINTb* 

MSTR 

FUNCION: Como funcion, se usa MID$ para segregar los caracteres 
MEDIANEROS del argumento y formar por tanto, un sub-litero de el. 
El primer parametro entero que especifica la posicion donde comienza 
la segregacion; y el segundo parametro entero la longitud del sub-litero 
resultado de la funcion. (Si se omite, se toma hasta el final del argumento). 



'Caprtulo 8 Pagina 35 



BASIC: Palabras Clave 



ACCION: Como comando e instruccion, permite reemplazar en el valor 
de una variable literal los caracteres MEDIANEROS. El primer parametro 
entero especifica la posicion del primer caracter a reemplazar, y el segundo 
parametro entero el numero de caracteres que se reemplazara. 

CLAVES asociadas: (como funcion) LEFT$, RIGHT$ 



MIN 

HIN(<lista de: (expresion numeral)) 

PRINT MIN (3, 6, 2. 999, 8, 9) 
2.999 

FUNCION: El resultado es el numero con valor absoluto MINIMO que 
aparezca en la lista argumento. 

CLAVE asociada: MAX 



MODE 

MODE (expresion entera) 

MODE 1 

ACCION: Estipula como nuevo modo de pantalla el mencionado en el 
parametro (0, 1 6 2). Y deja la pantalla en INK 0, que puede no 
corresponder al tinte fijado para el papel. Todas las ventanas de texto 
y graficos posibles, quedan restauradas, y los cursores de texto y grafico 
se ubican en su posicion base. 

CLAVES asociadas: WINDOW, ORIGIN 



MOVE 

MOVE <x coordenadas), <y coordenadas) 
MOVE 34,34 



Capitulo 8 Pagina 36- 



BASIC: Palabras Clave 



ACCION: MUEVE el cursor de graficos a la posicion cuyas coordenadas 
relativas se mencionan en el comando. YPOS y XPOS son las funciones 
correspondientes para conocer la posicion corriente del cursor de graficos. 

CLAVES asociadas: MOVER, PLOT, PLOTR, DRAW, DRAWR, ORIGIN, 
TEST, TESTR, XPOS, YPOS 



MOVER 

HOVER Uncrwwrto de x>, (incretento de y> 

MOVER 34,34 

ACCION: MUEVE el cursor de graficos usando como coordenadas 
RELATIVAS a la posicion anterior del cursor, los parametros horizontal 
y vertical especificados en el comando. 

CLAVES asociadas: MOVE, PLOT, PLOTR, DRAW, DRAWR, TEST, TESTR, 
XPOS, YPOS 



NEW 

NEW 

NEW 

ACCION: Este comando VACIA la memoria dejandola preparada para 

un NUEVO programa. Las definiciones de teclas no se pierden, ni se limpia 

la pantalla. Es un comando del que no puedes recobrar ni el programa 

ni las variables existentes en memoria, por lo que solo es un poco menos 

peligroso que el restaurado total del ordenador o el apagado. Usalo con 

cuidado. 



-Capftulo 8 Pagina 37 



BASIC: Palabras Clave 



NEXT 

NEXT [Uistade: (variable)] 

FOR n=l TO 1000: NEXT 

ACCION: Delimita el final de un bucle reiterative Es decir, el comando 
NEXT obliga a que se efectue OTRA ronda si las condiciones del bucle 
lo exigen, o que se pase a otra instruccion. Es mas rapido cuando se omite 
mencionar el 'contador de rondas' del bucle. En el ejemplo anterior seria 
mas lento poner 

NEXT n 

CLAVES asociadas: FOR 



ON GOSUB 
ON GOTO 

ON <expresion entera) GOSUB (lista de:(nuaero de linea) 
ON (expresion entera) 60T0 <lista de:<nuaero de linea) 

10 ON DAY B09UB 100,200,300,400,500 
10 ON RATE GOTO 1000,2000,3000,4000 

ACCION: SEGUN el valor del parametro entero mencionado despues de 
ON, hara que el ordenador VAYA a ejecutar una de las instrucciones 
mencionadas despues de GOTO. Si el resultado es 1, hara que en la lista 
aparezca en primer lugar, si es 2 la que aparezca en segundo lugar. En 
el ejemplo, SEGUN el valor de la variable D1A, asi' procedera: cuando 
DIA=1 ira a la 1000, cuando DIA=2 ira a la 2000. 

La variante con GOSUB simplemente hace que VAya YvenGA al parrafo 
que comienza en ese numero de linea. 

CLAVES asociadas: GOTO, GOSUB 



l_ 



Capftulo 8 Pagina 38- 



BASIC: Palabras Clave 



ON BREAK GOSUB 

ON BREAK GOSUB <nuaero de lrnea) 

10 ON BREAK GOSUB 40 

20 PRINT "ejecutando el programa" 

30 GOTO 20 

40 CLS 

50 PRINT "pulsando CESC] dos veces llama 

la rutina GOSUB" 
60 FOR t=l TO 2000: NEXT 
70 RETURN 

ACCION: Cuando se produzca una interrupcion en la ejecucion del 
programa (vg. pulsando dos veces la tecla de ESC) proseguira la ejecucion 
del programa en la subrutina mencionada. 

CLAVES asociadas: ON BREAK STOP, RETURN 



ON BREAK STOP 

ON BREAK STOP 

10 ON BREAK GOSUB 40 

20 PRINT "ejecutando el programa" 

30 GOTO 20 

40 CLS 

50 PRINT "pulsando CESC3 dos veces llama a 

la rutina GOSUB" 
60 FOR t=l TO 2000: NEXT 
65 ON BREAK STOP 
70 RETURN 

ACCION: CUANDO se ve 'atrapado' en una interrupcion y esta por tanto 
ejecutando la subrutina pertinente, la instruccion ON BREAK STOP, 
desactiva el 'cepo 1 , sin ningun otro efecto inmediato. En el programa 
anterior, que incluye ON BREAK STOP, el 'cepo' ON BREAK GOSUB 
operara solamente una vez. 

CLAVES asociadas: ON BREAK GOSUB 



-Capftulo 8 Pagina 39 



BASIC: Palabras Clave 



ON ERROR GOTO 

ON ERROR GOTO fanero de linea) 

10 ON ERROR GOTO 80 

20 CLS 

30 PRIIMT"si hay un error, prefiero" 

40 PRINT" listar el programa" 

50 PRINT"a si puedo ver do ride me equivoco" 

60 FOR t=l TO 4000: NEXT 

70 BOTO 200 

80 CLS: PR I NT" hay un error en la 1 inea" ;ERI_: PRINT 

90 LIST 

ACCION: CUANDO haya un error al estar ejecutandose un programa, 
hara que el ordenador VAYA al numero de linea mencionado. En este 
ejemplo, en la linea 70 se producira el error. 

CLAVES asociadas: ERR, ERL, RESUME 



ON SQ GOSUB 

ON SQ (<canal>) GOSUB (nuwro de linea) 
ON SQ (2) GOSUB 2000 

ACCION: CUANDO el sistema detecta que existe un hueco vacio en el 
'chorro de notas 1 del canal de sonido mencionado en la instruccion, 
generara una serial de interrupcion, que obligara al ordenador a desviarse 
a la subrutina mencionada en la instruccion. Los numeros de canal 
corresponden a: . 

1 para el canal A 

2 para el canal B 
4 para el canal C 

CLAVES asociadas: SOUND, SQ 



■Capitulo 8 Pagina 40- 



BASIC: Palabras Clave- 



OPENIN 

OPENIN <rw«bre de f ichero) 
100 OPENIN " ! INFORMflCION" 

ACCION: ABRE como fichero de ENTRADA el mencionado despues de 
OPENIN; y prepara en memoria el 'buzon de entrada 1 de la informacion 
procedente del cassette. 

Si se menciona como caracter anterior del nombre de fichero el ?, se 
suprimiran los mensajes de ayuda al manejo del cassette y el programa^ 
extraera del cassette el primer bloque de datos y lo pondra a disposicion 
del programa. 

CLAVES asociadas: COSEIN, OPENOUT 



OPENOUT 

OPENOUT faoabre de fichero) 

OPENOUT "! DATOS" 

ACCION: ABRE como fichero de SALIDA el mencionado despues de 
OPENOUT; y prepara en memoria el 'buzon de salida' de la informacion 
procedente del cassette. 

Si se menciona como caracter anterior del nombre de fichero el ?, se 
suprimiran los mensajes de ayuda al manejo del cassette y el programa^ 
extraera del cassette el primer bloque de datos y lo pondra a disposicion 
del programa. 

Cada bloque de datos consta de 2Kbs, y no se transferira a la cinta hasta 
que el buzon de salida este lleno, o se CIERRE el fichero de SALIDA, 
usando la instruccion CLOSEOUT. 

NB: El comando NEW tambien VACIA el buzon de salida, con la 
subsecuente perdida de datos. 

CLAVES asociadas: CLOSEOUT, OPENIN 



-Capftulo 8 Pagina *1- 



BASIC: Palabras Clave 



ORIGIN 

0RI6IN <x> , <y> [, Uzquierda) , <derecha) , (arriba) , (aba jo) ] 

10 CLS: BORDER 13 

20 ORIGIN 0,0,50,590,350,50 

30 DRAW 540,350 

40 GOTO 20 

ACCION: Estipula el punto ORIGEN para el cursor de graficos. Los 
parametros opcionales de este comando fijan los li'mites de una nueva 
ventana de graficos, que sera operativa en todos los modos admitidos 
de pantalla, debido a la tecnica de coordenadas empleadas. 

El ORIGEN es habitualmente el punto de coordenadas 0,0 situado en la 
esquina inferior izquierda de la ventana, y las coordenadas aumentan 
verticalmente y hacia la derecha. En el Apendice VI, presentamos reti'culas 
para poder planificar tus graficos correctamente. 

Si cualquiera de los corners de la ventana corresponde a una posicion 

que se sale de la pantalla, se tomara automaticamente la posicion "visible" 

mas alejada en esa direccion. 

CLAVES asociadas: WINDOW 



OUT 

OUT (rimero de portal), (expresion entera) 

OUT &F8F4, 10 

ACCION: Envia el valor del parametro entero (que debe estar en la gama 
a 255) al portal de SALIDA correspondiente a la direccion mencionada. 

CLAVES asociadas: INP, WAIT 



L 



Capitulo 8 Pagina 42- 



BASIC: Palabras Clave 



PAPER 

PAPER [Knuaeral de cauce),](tinta usada) 

10 MODE 

20 FOR p=0 TO 15 

30 PAPER p:CLS 

40 PEN 15-p 

50 LOCATE 6, 125PRINT "PAPER"p 

60 FOR t=l TO 500: NEXT t 

70 NEXT p 

ACCION: Estipula el TINTe correspondiente al PAPEL (fondo) de la pantalla 
Cuando se exponen caracteres en la pantalla de textos, la posicion del 
caracter se rellena con la TINTa correspondiente a PAPER antes de 
sobre-escribir el caracter con la tinta correspondiente a PEN, a no ser 
que se haya elegido el modo transparente. 

El numero de colores que puede aparecen en pantalla depende del modo 
elegido. Si el parametro de tinta mencionado en el comando, no esta 
disponible, se tomara el valor prescrito para omisiones. 

CLAVES asociadas: INK, WINDOW, PEN 



PEEK 

PEEK(<expresion direccional)) 

10 MODE 2 

20 INK 1,0: INK 0,12 : BORDER 12 

30 INPUT "Direccion de inico para su examen" ; inicio 

40 INPUT "Direccion del final para su examen" ; final 

50 FOR n= inicio TO final 

60 VALUE*=HEX*(PEEK<n>,2> 

70 PRINT VALUE*; 

80 PRINT" en " ;HEX* <n> , 4) , 

90 NEXT 

FUNCION: El resultado es en notacion decimal, el contenido de la celdilla 
de memoria cuya direccion viene expresada por el argumento de la funcion. 
El ejemplo muestra un programa 'utensilio' que te permite PINZAR y 
observar en pantalla el contenido de la memoria de lectura y escritura 
del CPC464, junto con la correspondiente direccion. 

CLAVES asociadas: POKE 



-Capftulo 8 Pagina *3- 



BASIC: Palabras Clave 



PEN 

PEN [Knuaeral del cauce), Ktinta usada) 

PEN 1,2 

ACCION: Estipula la tinta a usar con la PLUMA cuando se usa una 
deter minada ventana (correspondiente al cauce mencionado). Si no se 
menciona explfcitamente un cauce, el comando afecta al cauce numero 0, 
que como siempre, corresponde a toda la pantalla. 

CLAVES asociadas: INK, PAPER 

PI 

PI 

PRINT PI 
3. 14159265 



10 

20 

30 

40 

50 

60 

70 

80 

90 

100 

110 

120 

130 

140 

150 

160 

170 



REM Dibujo en perspectiva 

MODE 2 

ROD 

INK 1,0 

INK 0, 12 

BORDER 9 

FOR N= 1 TO 200 

ORIGIN 420,0 

DRAW 0, 200 

REM dibuja angulos en puntos de fuga 

DRAW 30*N*SIN<N*PI/4), (SIN(PI/2) ) *N*SIN(N) 

NEXT 

MOVE 0,200 

DRAWR 0,50 

DRAWR 40,0 

WINDOW 1,40, 

PRINT"Ahora 

Ahorcado ! " 



1,10 

puede terminar el 



programa del 



FUNCION: Realmente es una variable numerica real intri'nseca del 
ordenador. Representa la relacion entre la circunferencia y el diametro 
de un ci'rculo, y el valor con el que se opera es de 3.141592653468251. 
Se usa ampliamente en las rutinas de graficos tal como la presentada 
en el ejemplo. 

CLAVES asociadas: DEG, RAD 



Capftulo 8 Pagina 44- 



BASIC: Palabras Clave 



PLOT 

PLOT <x coordenada),{y coordenada) [, (tinta usada)] 

10 MODE 2: PRINT "Pulse 4 numeros, separados 

por comas": PRINT 
20 PRINT "Pulse X origen (0-639), 

Y origen (0-399), radio y angulo 
del salto ": INPUT x, y, r, s 

30 ORIGIN x,y 

40 FOR angulo = 1 to 360 STEP s 

50 XPOINT = r*cos (angulo) 

60 YPOINT = r*c os (angulo) 

70 PLOT XPOINT, YPOINT 

74 REM MOVE 0,0 

75 REM DRftW XPOINT, YPOINT 
80 NEXT 

ACCION: Es mas rapido que ensayes con los parametros 320, 200, 20, 
1 como primera respuesta al ejemplo. Luego activa la linea 75 (quita 
REM) y desactiva la linea 70 (precedela de REM) para ver la diferencia. 

Observa que en el primer caso se PINTA el contorno del circulo, y en 
el segundo se dibuja un circulo solido. Recuerda tambien que en este 
programa se usan RADIANES para las magnitudes angulares, (que es 
el modo prescrito como normal), por lo que el angulo en cada paso es 
mucho mayor de 1 grado (aproximadamente 51 grados). Puedes teclear 
el comando 25 DEG para pasar a grados y ver el efecto. 

CLAVES asociadas: DRAW, DRAWR, PLOT, PLOTR, MOVE, MOVER, 
ORIGIN, TEST, TESTR, XPOS, YPOs 

PLOTR 

PLOTR , (x coordenada), (y coordenada) [, (tinta usada) 1 

10 MODE 2: PRINT "Pulse 4 numeros, 

separados por comas": PRINT 
20 PRINT "Pulse X origen (0,369), 

Y origen (0-399), radio y angulo 
del salto": INPUT x, y, r, s 

30 ORIBIN x,y 

40 FOR angulo = 1 to 360 STEP s 

50 XPOINT = r*C0S (angulo) 

60 YPOINT = r*C0S( angulo) 

70 PLOTR XPOINT, YPOINT 

80 NEXT:B0T0 40 

ACCION: Ensaya 320, 0, 20, 1 como respuestas. PLOTR es similar a 
DRAWR, pero solamente PINTA la mota cuyas coordenadas RELATIVAS 
se mencionan en el comando. 

CLAVES asociadas: DRAW, DRAWR, PLOT, PLOTR, MOVE, MOVER, 

ORIGIN, TEST, TESTR, XPOS, YPOS ., , 
Capitulo 8 Pagma *5 



POKE 

POKE (expresion direccional), texpresion entera) 
POKE &OOFF, 10 

ACCION: Permite accesar directamente la celdilla de memoria cuya 
direccion se menciona, y hacer que se PUNZE en ella el equivalente 
binario del parametro entero que se menciona, que por tanto debe estar 
en la gama a 255. 

Usala con cuidado porque puedes afectar el comportamiento del programa 
de manera impredecible. 

CLAVE asociada: PEEK 



POS 

POS(i<nuaeral de cauce) 

PRINT PDS(#0) 
1 

FUNCION: El resultado es la posicion corriente del cursor en el cauce 
mencionado como argumento. En este caso, no hay valor prescrito para 
omisiones del numeral de cauce, y ademas, si lo omites se provocara 
un mensaje de error sintactico. 

Cuando el cauce corresponde a la pantalla, el resultado refleja la 
coordenada X del cursor de texto, en relacion con el costado izquierdo 
de la ventana correspondiente. 

Cuando el cauce corresponde a impresora, el resultado refleja la posicion 
del cabezal de impresion siendo el valor 1 el correspondiente al margen 
izquierdo. En la cuenta, solo se incluyen los caracteres ASCII con codigos 
mayores de 32 (&1F). 

Cuando el cauce corresponde al cassette, es lo mismo que para la 
impresora. 

CLAVES asociadas: VPOS 



Capftulo 8 Pagina 46- 



BASIC: Palabras Clave 



PRINT 

PRINT [Knuaeral de cauce),]C (print lista)][ (clausula USIN6>][ (separator)]] 
PRINT #0, "abc" 

ACCION: La explicacion completa aparece en las paginas finales de este 
capi'tulo. 

CLAVES asociadas: USING, TAB, SPC 



RAD 



ACCION: Estipula que las magnitudes angulares se tomen en RADIANES. 
CLAVES asociadas: DEG, SIN, COS, TAN, ATN 

RANDOMIZE 

RRNDOMIZE [(expresion nuaeral)] 

10 RANDOMIZE 23 
20 PRINT RND (6) 

ACCION: El BASIC tiene la habilidad de generar una secuencia pseudo- 
aleatoria (cada numero depende del que le precede) utilizando como germen 
el parametro mencionado en el comando ALEATORICE. Si se omite el 
parametro, se requerira al operador que imponga un valor por teclado, 
que ha de estar en la gama -32768 a 32768. 

Si no se utiliza el comando RANDOMIZE en el programa, la secuencia 
generada es siempre la misma cada vez que se ejecute el programa. Si 
se usa la variante RANDOMIZE TIME el germen de la secuencia depende 
del TIEMPO transcurrido desde un determinado momento, con lo que 
resulta una aleatorizacion practicamente completa. 

CLAVES asociadas: RND 



-Capftulo 8 Pagina 47 



BASIC: Palabras Clave 



READ 

READ lista de: (variable) 

10 FOR X=l TO 4 

20 READ N* 

30 PRINT N* 

40 DATA JOSE, LUIS, JAVIER, PEDRO 

50 NEXT 

ACCION: Con la instruccion READ se logra que el sistema APUNTE 
correlativamente como valor de las variables las constantes resenadas 
en las instrucciones DATA. El sistema mantiene un 'puntero' interno 
para conocer las constantes que ya lleva apuntadas a las variables. Con 
la instruccion RESTORE se le obliga a que ARREDRE dicho puntero. 

CLAVES asociadas: DATA, RESTORE 



RELEASE 

RELEASE (canales de sonido) 
RELEASE 4 

ACCION: Cuando se envia a un canal de sonido una NOTA, se la puede 
marcar como RETENIDA. Con el comando RELEASE, se le queda 
LIBERADA la del canal o canales mencionados por el parametro de dicho 
comando. El valor del parametro esta calibrado en el sistema binario, 
de la siguiente forma: A=bit 0, B=bit 1, C=bit 2. Por lo tanto, un valor 
de k en el parametro (en binario 0100) afecta solo al canal de sonido C. 

CLAVE asociada: SOUND 



REM 

REN (el resto de la linea) 

10 REM Monstruo Hiperespacial Intergalact ico 

a la caza de los Invasores por AMSOFT 
20 REM Copyright AMSOFT 1984 



■Capitulo 8 Pagina 48- 



BASIC: Palabras Clave 



ACCION: Colocando en una linea de programa la palabra reservada REM 
se le hace que reMEMOre todo lo que se escriba despues y hasta el 
'retorno de carro'; pero que no tenga ningun efecto sobre el programa. 
Puede sustituirse la palabra clave REM por el apostrofe ' . Por supuesto, 
el apostrofe no puede formar parte de ninguna constante literal. 



REMAIN 

REMAIN ({expresion entera)) 

REMAIN (3) 

PRINT #6, REMAIN (0) ; 

FUNCION: Desactiva el temporizador de demora especificado (en la'gama 
a 3). 

Lee la cuenta que QUEDA en el temporizador de demora. Se devuelve 
si el temporizador de demora no estaba activado. 

CLAVES asociadas: AFTER, EVERY 

RENUM 

RENUM [<nuevo nuiero de linea)] [.[(anterior nuaero de linea)][, (increiento)]] 



RENUM 
RENUM 



100, , 100 



ACCION: Renumera las lineas del programa a partir del numero de Ifnea 
antiguo, al que hace corresponder el numero de Ifnea nuevo, y en saltos 
dados por el tercero de los parametros. Si se omite el parametro de salto, 
renumera de 10 en 10. Si se omite el numero de linea vie jo, renumera 
a partir del primer numero de linea del programa. Si se omite el numero 
de linea nuevo, renumera empezando con el 10. 

Durante la renumeracion, el sistema se preocupa de cambiar los numeros 
destinos de saltos y. desvios. Los numeros de linea validos para un 
programa deben estar en la gama 1 a 65535. 

En el primero de los ejemplos en que se han omitido los tres parametros, 
el resultado de la renumeracion sera un programa comenzando con el 
numero de linea 10 e incrementando de 10 en 10 los numeros de ifnea 
subsiguientes. 

Capitulo 8 Pagina *9— 



BASIC: Palabras Clave 



RESTORE 

RESTORE [<nuwro de linea)] 

RESTORE 300 

10 FOR N=l TO 6 

20 READ P* 

30 PRINT A* " "; 

40 DATA restaurada, puede, ser, releida 

50 NEXT 

60 PRINT 

70 RESTORE 

80 GOTO 10 

ACCION: El sistema mantiene un 'puntero' interno senalando -en las series 
de constantes utilizadas en el programa- la ultima que ha apuntado como 
valor de una variable. Con el comando RESTORE se le obliga a que 
REPUNTE dicho puntero hacia la serie de constantes que corresponde 
al numero de ifnea mencionado como parametro. Si se omite ese numero 
de linea se conseguira que repunte a la primera constante de la primera 
serie de constantes que haya en el programa. 

CLAVES asociadas: READ, DATA 



RESUME 

RESUME[<nuiero de linea)] 
o RESUME NEXT 

RESUME 300 

ACCION: Cuando se ha colocado en el programa un 'cepo', mediante 
la instruccion ON ERROR GOTO nnn, y se ha 'atrapado' un error durante 
la ejecucion; se puede incluir en el tratamiento subsecuente del error, 
el comando RESUME para hacer que se REANUDE la ejecucion del 
programa, a partir del numero de linea mencionado en la instruccion. 
En lugar del numero de linea, tambien se puede reflejar la palabra clave 
NEXT, con lo que la reanudacion se hara a partir de la instruccion 
SIGUIENTE a la que se produjo el error. 

CLAVES asociadas: ON ERROR GOTO 



Capitulo 8 Pagina 50- 



BASIC: Palabras Clave 



RETURN 

RETURN 
RETURN 

ACCION: Indica la culminacion de una subrutina, y hace que el sistema 
VUELVA a la instruccion inmediatamente siguiente a la que produjo el 
ultimo desvio. 

CLAVES asociadas: GOSUB, ON n GOSUB, ON SQ GOSUB, AFTER n 
GOSUB, EVERY n GOSUB, ON BREAK GOSUB 

RIGHT$ 

RIGHT* ({expresion literal), {expresion entera)) 

10 CLS 

20 A* = "AMSTRAD" 

30 B* = RIGHT* (ft*, 3) 

40 PRINT B* 

RUN 

[LIHPIfl PflNTflLLfl] 

RAD 

Ready 

FUNCION: Segrega del parametro literal de la funcion tantos caracteres 
ULTERIORES como indique el parametro entero de la funcion. El resultado 
es pues, el sublitero colocado en la parte derecha del argumento, y si 
dicho argumento tiene menos longitud que la exigida por el segundo 
argumento numerico, el resultado es exactamente igual al argumento. 

CLAVES asociadas: MID$, LEFT$ 



RND 

RNDK (expresion nuaeral))] 

10 RANDOMIZE 23 
20 PRINT RND (6) 



■ Capitulo 8 Pagina 51- 



BASIC: Palabras Clave 



FUNCION: Recaba un numero aleatorio de la secuencia generada 
internamente, en el intervalo a 1 y es el siguiente en secuencia, cuando 
el argumento se omite o es positivo; la repeticion del ultimo recabado 
cuando es 0; o siempre el primero cuando el argumento es negativo. 

el comando RANDOMIZE del programa anterior, asegura que el resultado 
de RND(6) es siempre el mismo numero cada vez que se ejecuta el 
programa (0.146940658), con lo que se destruira el AZAR entre jugadas. 

CLAVES asociadas: RANDOMIZE 



ROUND 

ROUND (<expresion nuaeralH, (expresion entera)]) 

10 x=0. 123456789 

20 FOR r=9 TO STEP -l: PRINT r, ROUND (x, r> : NEXT 

25 x= 123456789 

30 FOR r=0 TO -9 STEP -1 

40 PRINT r, ROUND (x, r> 

50 NEXT 

FUNCION: Entrega el valor del primer argumento numeral REDONDEADO 
a la potencia de 10 senalada por el segundo argumento de la funcion. Si 
el segundo argumento es negativo, el valor obtenido es un entero seguido 
por tantos ceros despues del punto decimal como indique el segundo 
argumento. 

CLAVES asociadas: INT, FIX, CINT, ABS 



RUN 

RUN (expresion literal) 
RUN "BIENVENIDO" 

ACCION: Carga un programa desde el cassette en la memoria del 
ordenador, y comienza a EJECUTARLO inmediatamente. Si no se menciona 
nombre del programa (ie. se teclea RUN " ") el sistema cargara y ejecutara 
el primer fichero que encuentre en la cinta. Si el caracter anterior de 
la expresion literal es ! se suprimiran los mensajes de ayuda para 
manipulacion del cassette. 

NB: Este comando implica que BASIC realice previamente un comando 
NEW, inmediatamente antes de comenzar a leer en la cinta. 



Capftulo 8 Pagina 52- 



BASIC: Palabras Clave 



CLAVES asociadas: LOAD 



RUN 

RUNCOiuaero de linea)] 

RUN 100 

ACCION: Comienza a EJECUTAR el programa existente en memoria 
a partir de la linea mencionada; o a partir de la primera linea si no se 
menciona ninguna. 

Con este comando, se cancelan todas las funciones de usuario estipuladas 
y se anulan todos los valores de las variables. Asimismo, se anulan todos 
los posibles convenios sobre nombres de variables; y se vacian todos los 
buzones de salida de los ficheros en cinta, con la consiguiente perdida 
de informacion. Usa el comando GOTO nn, si no quieres perder esa 
informacion. 

CLAVES asociadas: LOAD, GOTO 



SAVE 

SAVE (noibre de fichero) [, (tipo de fichero)H, (paraaetros binarios)] 

SAVE "PROG" , P 

ACCION: El comando SAVE hace que se GUARDE en la cinta el programa 
existente en memoria, con el nombre de fichero mencionado. Dependiendo 
del valor del ultimo parametro del comando, el programa guardado sera 
un fichero de la clase: 

ASCII cuando el parametro sea ,A 
Protegido cuando el parametro sea ,P 

Binario cuando el parametro sea ,B (usado para que se GUARDE 

la informacion contenida en 
ciertas partes de la memoria, 
v.g. la referente a pantalla). 

CLAVES asociadas: LOAD, RUN <nombrefichero^ MERGE, CHAIN, 
CHAIN MERGE 



■ Capftulo 8 Pagina 53- 



BASIC: Palabras Clave- 



SGN 

SNGHexpresion numeral)) 

10 INPUT "Cual es tu Balance Bancario act ua 1 " ; C AJfl 

20 IF SNG(CflJA) <1 GOT 30 ELSE 40 

30 PRINT "Horror, que mal":NED" 

40 PRINT"Andas mejor que yo, eh!"" 

FUNCION: El valor entregado depende del SIGNO del argumento de la 
funcion; siendo -1 si el argumento es menor que (negativo), siendo 
si el argumento es igual a 0, y siendo 1 cuando el argumento es mayor 
que (positivo). 

CLAVES asociadas: ABS 



SIN 

SINUexpresion numeral)) 

PRINT SIN(PI/2) 
1 

FUNCION: El resultado es siempre una constante numerica real, igual 
al SENO del argumento; que sera considerado en radianes, a no ser que 
previa y explfcitamente se haya declarado que son GRADOS. 

CLAVES asociadas: COS, TAN, ATN, DEG, RAD 



SOUND 

SOUMHestado de canal), (periodo de tono), (duracion) C, (volwenH, <envolventc de voluaen) 

[, (envolvente de tono)[, (periodo de nudo)]]]]] 



SOUND 1,200,1000,7,0,0,1 
Capftulo 8 Pagina 54 



BASIC: Palabras Clave 



ACCION: Las facetas del SONIDO del CPC464 es una de las 
caracterfsticas mas potentes y complejas del CPC464, y se explica 
detalladamente en el capitulo 6. 

CLAVES asociadas: ENV, ENT 



SPACE$ 

SPflCEHtexpresion entera)) 

SPACE* (190) 

FUNCION: El resultado es una constante literal formada exclusivamente 
por el numero de ESPACIOS en bianco expresado por el valor del 
argumento. 

CLAVES asociadas: PRINT, SPC, TAB 



SPEED INK 

SPEED INK (expresion entera), <expresi on entera) 

5 INK 0,9, 12: INK 1,0,26 

10 BORDER 12,9 

20 SPEED INK 50,20 

ACCION: Se puede hacer que la tinta del papel o de la pluma, y el 
borde de la pantalla parpadee entre dos posibles colores asociados al 
numero de tinta: el comando SPEED INK permite variar la CADENCIA 
de parpadeo entre esos dos colores. El primer parametro entero especifica 
el tiempo correspondiente al primer valor de tinta, y el segundo parametro 
el correspondiente al segundo valor de tinta. Los tiempos se miden en 
unidades de 2 centesimas de segundo (con suministro a 50Hz). 

Debes ejercer cuidadosamente tus apreciaciones, para evitar efectos de 
'perceptibilidad mesmerica' al elegir los colores y cadencias de 
repeticion. 

CLAVES asociadas: INK, BORDER 



■Capitulo 8 Pagina 55- 



BASIC: Palabras Clave 



SPEED KEY 

SPEED KEY <dawra de cotienzo), (periodo de repeticion) 

SPEED KEY 20,3 

ACCION: Si se mantienen pulsadas un determinado tiempo, las teclas 
del CPC464 repetiran automaticamente el envio de las senales pertinentes 
con el perfodo designado por el primer parametro y con la demora en 
el arranque designada en el segundo parametro. El ajuste se hace en 
incrementos de 0,02 segundos y ambos parametros deben estar en la gama 
1 a 255. Los valores prescritos para omisiones son 10 y 10 unidades de 
tiempo respectivamente. 

Las demoras en el arranque que tengan valores muy pequefios pueden 
afectar a las rutinas 'quita rebotes' de las teclas. La velocidad de 
exploracion del teclado que internamente se efectua no se ve afectada 
por este comando. No todas las teclas son tipomaticas, y cuando el usuario 
redefine el significado de una tecla, puede establecer este atributo de 
tipomatismo para esa tecla. 

CLAVES asociadas: KEY DEF 



SPEED WRITE 

SPEED WRITE (expresion enters) 

SPEED WRITE 1 

ACCION: En el sistema se pueden efectuar las transferencias de 
informacion entre el ordenador y el cassette eligiendo entre dos 
velocidades, y con el comando SPEED WRITE, se fija la VELOCIDAD 
de ESCRITURA en el cassette: si el valor del parametro es 1 la velocidad 
elegida es 2000 baudios, y si es la de 1000 baudios. , 

Cuando lee informacion de la cinta, el CPC464 establece automaticamente 
la velocidad de lectura al valor correspondiente a la que se uso al 
escribirla; por lo que no es elegible por el usuario la velocidad de 'lectado 1 . 

Cuando se usan cintas magneticas de dudosa calidad de grabacion y 
lectura, se recomienda usar la velocidad de 1000 baudios para una 
fiabiiidad maxima (veanse las notas del capftulo 2 para mas informacion). 



Capitulo 8 Pagina 56" 



BASIC: Palabras Clave 



CLAVES asociadas: SAVE 



SQ 

SQ( (canal)) 

10 MODE 1 

20 FOR n=20 TO STEP-1 

30 PRINT n; 

40 SOUND 1, 10+n, 100, 7 

50 WHILE SQ(1)> 127: WEND 

60 NEXT 

FUNCION: La funcion SQ se utiliza para examinar el ESTADO DEL 
CANAL de sonido correspondiente al argumento; y el valor resultante 
esta calibrado en binario de la siguiente manera. Los bits 0, 1, 2 indican 
el numero de 'huecos' existentes en el CHORRO DE NOTAS pendientes 
de ser emitidas por el altavoz. 

Los bits 3, 4 y 5 indican si la primera de las notas del chorro (si hay 

realmente chorro) esta marcada como ACORDE con algun otro canal 

de sonido. 

El bit 6 indica si la citada nota de cabecera esta RETENIDA. 

El bit 7 si el canal correspondiente esta corrientemente ACTIVADO. 

El argumento de la funcion tambien esta calibrado en binario, con el 

bit 1 para el canal A, el bit 2 para el canal B y el bit 3 para el canal C. 

Por tanto, un valor decimal de 5 hace que el comando afecte a los canales 

A y C. 

CLAVES asociadas: ON SQ GOSUB 



SQR 

SQRUexpresion nuaeral)) 

PRINT SQR (9) 
3 

FUNCION: Entrega como resultado la rafz cuadrada del argumento (que 
ha de tener un valor positivo). 

CLAVES asociadas: PRINT 



-Capitulo 8 Pagina 57 



BASIC: Palabras clave 



STOP 

STOP 

300 IF n<0 THEN STOP 

ACCION: El comando STOP hace que se pare la ejecucion del programa, 
pero que permanezca en un estado tal que pueda hacerse que SIGA usando 
el comando CONT. Suele usarse como instruccion dentro del programa 
en determinados puntos durante la depuracion del programa y luego se 
suprime. 

CLAVES asociadas: CONT, END 



STR$ 

STR$(<expresion nuaeral>) 

PRINT STR*(&766) 
1984 



PRINT 
84 



STR*(&1010100) 



FUNCION: Convierte el argumento numeral a la constante literal 
equivalente. Como en los ejemplos, puede usarse para hallar los 
equivalentes en el sistema decimal de numeros en notacion binaria o 
hexadecimal; pero ten siempre presente que el resultado es de INDOLE 
LITERICA. 

CLAVES asociadas: VAL, PRINT, HEX$, BIN$ 



STRING$ 

STRING$((expresion entera), (especificador del caracter)) 

PRINT STRING*(&16 7 "*"> 
ft********************* 

FUNCION: Entrega como. resultado una constante LITERAL formada por 
tantos caracteres como especifique el primer argumento entero, y del 
caracter asignado en el segundo argumento. 

Capftulo 8 Pagina 58 



BASIC: Palabras clave 



CLAVES asociadas: SPACE$ 



SYMBOL 

SYMBOL (nuaero de caracter), {lista de:<filas> 

5 MODE 2 

10 SYMBOL OFTER 90 

20 SYMBOL 93, &80, &40, &10, &8, &4, &2, &1 

30 FOR n=l TO 2000 

40 PRINT CHR*(93) ; 

50 NEXT 

60 GOTO 60 

ACCION: Permite redefinir el tipo, los ocho trazos con que se expone 
en pantalla. Del SIMBOLO cuyo codigo CPC464 es el designado por el 
primer parametro del comando; sustituyendolo por el resultante de 
utilizar los 8 parametros de la lista subsiguiente. 

Para preparar la lista es conveniente usar una cuadricula de 8 x 8, y 

51 rellenar o NO rellenar cada uno de los 64 cuadritos de acuerdo con 
el tipo o figura que desees; y considerar cada una de las 8 filas como 
un numero segun el sistema binario de numeracion, y expresarlo en el 
comando por el equivalente en el sistema que desees. En pantalla, el 
sistema mostrara una mota con el tinte fijado para el papel cuando haya 
un 1 (SI), y una mota con la tinta f ijada para la pluma cuando haya un 

(NO). 

En el ejemplo, el tipo definido es una pequena raya diagonal, y sera 
accesible por teclado usando la tecla marcada ] cuyo codigo CPC464 
y ASCII es 93. 

CLAVES asociadas: SYMBOL AFTER 



SYMBOL AFTER 

SYMBOL AFTER (expresion altera) 
SYMBOL AFTER 90 



-Capftulo 8 Pagina 59 



BASIC: Palabras clave 






ACCION: DE5PUES de este comando queda fijado el numero de caracteres 
definibles por el usuario a un valor dependiente del parametro del comando. 
Si se omite, se considera que el parametro es 240, dejando por tanto 
16 caracteres como definibles por el usuario. Si el valor de parametro 
es 32 todos los caracteres con codigos CPC464 incluidos en la gama 32 
a 255, se convierten en redefinibles por el usuario. Siempre que el sistema 
ejecuta este comando, todos los caracteres que tenga previamente definidos 
el usuario, se restauran al tipo prescrito en el sistema. 

CLAVES asociadas: SYMBOL 

TAG 

TA6[l<nuaeral de cauce)] 

10 MODE 2 

11 BORDER 9 

14 INK 0, 12 

15 INK 1,0 
20 FOR n=l TO 100 
30 MOVE 200+n, 320+n 
40 TfiG 

50 IF n<70 BOTO 60 ELSE 70 
60 PRINT'Hola"; :B0T0 80 
70 PRINT" fid i os"; 
80 NEXT 
90 GOTO 20 

ACCION: El texto enviado hacia un cauce dado, puede ser redireccionado 
para que se escriba en la posicion de cursor de graficos. Esto permite 
que se mezclen textos y sfmbolos con graficos. El <numeral del cauce> 
esta prescrito a #0 si se omite el parametro. El trazo superior de la 
celdilla del caracter es 'pegado como una etiqueta' al cursor de graficos, 
y apareceran caracteres de control no visivos (eg. teclear nueva lihea), 
si la instruccion PRINT no va seguida de un punto y coma ; . 

CLAVES asociadas: TAGOFF 



TAGOFF 
Tfl60FF[t<mi«eral de cauce)] 
TfiGOFF #0 

■ Capftulo 8 Pagina 60 — 



BASIC: Palabras clave 



ACCION: Cancela el TAG para un cauce dado, y envfa el texto a la 
posicion previa del cursor de textos en el punto en que se invoco TAG. 

CLAVES asociadas: TAG 



TAN 
TflN((expresion miieral)) 

PRINT TON (45) 

FUNCION: Calcula la tangente del angulo dado por el argumento de la 
funcion, que debe estar en la gama -200.000 a +200.000, con la medida 
en radianes prescrita para omisiones. 

CLAVES asociadas: COS, SIN, ATN, DEG, RAD 



TEST 

TEST<<x coord«Mda>,<y coordenada)) 

PRINT TEST (300, 300) 

FUNCION: Examina y da como resultado el valor de la tinta especificada 
en ese momento para esa posicion de la pantalla de graficos dada por 
las coordenadas ABSOLUTAS. 

CLAVES asociadas: TESTR, MOVE, MOVR, PLOT, PLOTR, DRAW, DRAWR 



TESTR 

TESTRUncrwento de x>, (incretento de y) 
TESTR (5, 5) 

FUNCION: Examina y da como resultado el valor de la tinta en la 
posicion de la pantalla de textos, cuyas coordenadas RELATIVAS a la 
posicion corriente del cursor de graficos corresponde con los argumentos 
de la funcion. 

— Capitulo 8 Pagina 61- 



BASIC: Palabras clave 



CLAVES asociadas: TEST, MOVE, MOVER, PLOT, PLOTR, DRAW, DRAWR 

TIME 

TINE 

10 DATUM = INT (TIME/300) 
20 TICKER=( (TIME/300) -DATUM) 
30 PRINT TICKER; 
40 GOTO 20 

FUNCION: Entrega como resultado el TIEMPO transcurrido desde la puesta 
en marcha del ordenador, descubriendo aquellos periodos de tiempo en 
que se efectuaran transferencias de datos con la cinta cassette. La unidad 
de medida del tiempo es de 1/300 de segundo. 



TRON 
TROFF 

TRON 

TROFF 

TRON 

ACCION: BASIC incluye esta facilidad para RASTREAR la ejecucion 
de un programa; y hace que se PONGA en RASTREO con el comando 
TRON y que se QUITE el RASTREO con el comando TROFF. Con esta 
operacion de rastreo los numeros de linea del programa que esta 
ejecutandose, aparecen en pantalla entre corchetes cuadrados [ ], 
justamente antes de ser obedecidas las instrucciones de esa linea. 

CLAVES asociadas: RUN 



UNT 

UNT( (expresion direccional)) 

PRINT UNT(&FF66) 



Capftulo 8 Pagina 62- 



BASIC: Palabras clave 



FUNCION: El argumento ha de corresponder a una de las posibles 
direcciones de las 'celdillas de memoria'; ie. un numeral en la gama 
a 65535 cuyo equivalente en el sistema BINARIO NATURAL (sin signo) 
tenga una representacion de 16 bitos. El resultado de la funcion es el 
numero entero equivalente en la gama -32768 a +32767. 

CLAVES asociadas: INT, FIX, CINT, ROUND 



UPPER$ 

UPPER$(<expresion literal)) 

PRINT UPPER* <"aiY.strad") 
AMSTRflD 

FUNCION: El resultado es igual al argumento literal sustituyendo todas 
las letras minusculas que aparecen en el argumento por letras mayusculas. 

CLAVES asociadas: LOWER$ 



VAL 

VfiUtexpresion literal)) 

10 A*="7 es mi numero de la suerte" 
20 PRINT VOL (ft*) 

FUNCION: Extrae el posible dato numerico que haya en el argumento 
literal; y que para ser efectivo debe estar colocado al principio del dato 
literal. Se usa en la mayorfa de los casos para convertir un dato literal 
en un dato de indole numeral. 

CLAVES asociadas: STR$ 



■Capftulo 8 Pagina 63- 



BASIC: Palabras clave 



VPOS 

VPOSd (numeral de cauce)) 

PRINT VPOS(#0) 

FUNCION: El resultado refleja la posicion VERTICAL del cursor de textos 
correspondiente al numeral de cauce argumento de la funcion; que es 
IMPRESCINDIBLE. 

CLAVES asociadas: POS 



WAIT 

WIT (nuaero de portal), (aascaraH, (inversion)] 

WAIT &FF34,20,25 

ACCION: Suspende cuaiquier otra operacion haciendo que el sistema 
ESPERE hasta que el portal mencionado en el comando, haya un valor 
particular dentro de la gama a 255: en realidad, este comando obliga 
al BASIC a que entre en un bucle -leera el valor presente en el portal 
mencionado, lo OLEara (operacion XOR) por el parametro inversion, y 
el resultado intermedio que obtenga lo YLIara (operacion AND) por el 
parametro mascara; y continuara repitiendo las operaciones del bucle 
HASTA que el resultado final sea distinto de cero. 

Si tecleas el ejemplo anterior, no tendras mas remedio que restaurar 
el ordenador para poder escapar del bucle. 

CLAVES asociadas: INP, OUT 



Capftulo 8 Pagina 64- 



• 



BASIC: Palabras clave 

WEND 

UB0 

10 MODE l:REM BASIC CLOCK TIME ROUTINE 

20 INPUT "Pulse la hora actual, minutos, y 

segundos (h, m, s) " ;horas, minutos, segundos 
30 CLS: datum = INT (TIME/300) 
40 WHILE horas<13 
50 WHILE minutos (60 
60 WHILE tick<60 

70 t ick= ( INT (TIME/300) -datum) +segundos 
80 LOCATE 70,4 

90 PRINT #0, USING "## " ; horas, minutos, t ick 
100 WEND 
110 tick=0 
115 segundos=0 
120 minutos=minutos+l 
130 GOTO 30 
140 WEND 
150 minutos=0 
160 horas=horas+l 
170 WEND 
180 horas=l 
190 GOTO 40 

ACCION: El bucle WHILE/WEND ejecuta reiteradamente una seccion 
de programa MIENTRAS que una determinada condicion es cierta. Este 
ejemplo usa un bucle WHILE/WEND para mostrar la elegancia de los 
programas construidos segun este enfoque. Ahora puedes anadir todo el 
conjunto de facetas de un surtido de relojes diferentes. El comando 
WEND termina el bucle WHILE. 

CLAVES asociadas: WHILE 



WHILE 

yHILEfaprtfion loqica) 

WHILE DfiY <0 

ACCION: Un comando WHILE hace que se ejecute repetidamente una 
seccion de programa MIENTRAS que sea cierta la condicion mencionada 
en el comando. El comando WHILE senala el inicio del bucle, y establece 
la condicion. El comando WEND culmina el bucle WHILE. 



CLAVES asociadas: WEND 



Capitulo 8 Pagina 65 — ' 



BASIC: Palabras Clave- 



L 



WIDTH 

WIDTH (expresion entera) 
WIDTH 86 

ACCION: Le dice al BASIC la ANCHURA de la impresora medida en 
posiciones de impresion; con lo que el BASIC insertara oportunamente 
los retornos de carro necesarios. 

CLAVES asociadas: PRINT, POS 



WINDOW 

WINDOW ft (numeral de cauce), Hizquierda), <derecha),<arriba),<abajo) 

10 MODE 1 

20 BORDER 6 

30 WINDOW 10,30,7, 18 

40 PAPER 2: PEN 3 

50 CLS 

60 PRINT CHR*<143) ;CHR*<242) ; "ESTA ES LA LOCAL I ZAC I ON" 

70 PRINT "1,1 EN VENTANA DE TEXTO" 

80 GOTO 80 

ACCION: Asocia una VENTANA DE TEXTO al cauce mencionado, y marca 
los lfmites de la ventana. 

CLAVES asociadas: ORIGIN 



WINDOW SWAP 

WINDOW SWAP (maeral de cauce), fauaeral de cauce) 

WINDOW SWAP 0,2 

ACCION: Produce un CANJE de ventanas. Por ejemplo, los mensajes 
de BASIC enviados por el cauce #0 puede intercambiarse con otra de 
las ventanas definidas para resaltar ciertos aspectos durante el desarrollo 
de los programas y la operacion. 

Capftulo 8 Pagina 66 — 



BASIC: Palabras clave 



CLAVES asociadas: WINDOW, PEN, PAPER, TAG 



WRITE 

WITE HMmueral de cauce>,H<lista escrita)] 

WRITE #2, "H0LA",4, 5 
"H0LA",4, 5 

ACCION: A traves del cauce mencionado, ESCRIBE la lista de datos 
mencionada en la instruccion, escribiendo exactamente los separadores 
y comillas que aparecen en la lista. 

CLAVES asociadas: PRINT 



XPOS 

XPOS 
PRINT XPOS 

FUNCION: Refleja la posicion HORIZONTAL del cursor de graficos. 
CLAVES asociadas: YPOS, MOVE, MOVER, ORIGIN 

YPOS 

YPOS 
PRINT YPOS 

FUNCION: Refleja la posicion VERTICAL del cursor de graficos. 
CLAVES asociadas: XPOS, MOVE, MOVER, ORIGIN 



Capftulo 8 Pagina 67- 



BASIC: Palabras clave 



ZONE 

ZONE (expresion entera) 



10 PRINT 1,2,3 

20 ZONE 19 

30 PRINT 4,5,6 

ACCION: Cambia la anchura de las ZONAS prescritas en pantalla y 
aprovechadas mediante el signo , al exponer datos en pantalla; cambiando 
el valor prescrito al arranque de 13 posiciones de anchura de zona, al 
valor mencionado en el comando, dentro de la gama 1 a 255. 

Se restauran las condiciones iniciales con los comandos NEW, LOAD, 
CHAIN y RUN "nombre de fichero". 

CLAVES asociao. ~: PRINT, WIDTH 



Capftulo 8 Pagina 68- 



BASIC: Paktbras Clave 

PRINT 

PRINKI (numeral de cauce),]C<lista de datos)] [clausula aascara>][{separador>] 

(lista de datos) es {expresion) [(separador) (dato a exponer) ]f 
(dato a exponer) es {expresion) 
o bien 

SPC( (expresion entera)) 
Tfffi(<expresion entera)) 

Para sacar infortacibn por el cauce de grabacibn en cassette. 

10 OPENOUT "DATA" 
20 PRINT #9, "Hola" 
30 CLOSEOUT 

Para sacar infonucibn por el cauce de iapresibn 

10 BOBSSALfiRY =23*PI 

20 PRINT #8, USING "####.##" ;BOBSSALARY 

30 PRINT #0, BOBSSfiLARY 

RUN 

72256.6311 
Ready 

Mientras, en la iapresora 1 

72256. 63 

ACCION: El comando PRINT hace que el sistema EXPONGA los datos a 
traves del CAUCE mencionado. 

Cuando se usan separadores el BASIC los expone en formato 'libre 1 , donde 
una coma a continuacion del dato a exponer hara que se coloque al 
comienzo de la siguiente ZONA; mientras que un punto y coma los pondra 
a continuacion del dato inmediatamente anterior. (Si el dato es numerico 
sacara un bianco). 

La clausula USING permite especificar una 'norma' o 'mascara' que 
conforme la apariencia de los datos expuestos; y ha de ser un literal, 
variable o constante, en el que solo aparezcan los sfmbolos especificados 
en la tabla anexa. 

La clausula SPC (n) hace que se inserten n ESPACIOS en bianco antes 
de exponer el siguiente dato, y siendo n un numeral entero dentro de 
la gama a 255. (Si es negativo se toma el valor 0), y si es mas ancho 
que la anchura del periferico correspondiente (pantalla, impresora, etc.), 
se reduce al correspondiente valor congruente con dicha anchura. Observa 
que no tiene que delimitarse esta clausula ni con coma ni con punto y 
coma; se supone en todo momento que hay un punto y coma. 

Capftulo 8 Pagina 69— 



BASIC: Palabras Clave 



La clausula TAB (nn) desplaza el cursor hasta la posicion horizontal 
indicada por nn, que ha de estar en la gama a 255. (Si es negativo se 
supone la posicion 1, y si sobrepasa la anchura del periferico pertinente 
se reduce al numero congruente con dicha anchura. 

Si la posicion nn exigida es igual o sobrepasa la posicion corriente del 
mecanismo expositor (cursor, cabezal, etc.), se insertan los espacios 
convenientes para situarlo en la posicion exigida. Pero si es menor que 
la posicion presente, se enviara un 'retorno de carro 1 seguido por los 
espacios convenientes para situarlo en la posicion exigida, con lo que 
aparecera en la siguiente lfnea. Tampoco es necesario terminar esta 
clausula con un separador, ya que se supone en todo momento que hay 
un punto y coma. 



Capftulo 8 Pagina 70- 



BASIC: Palabras clave ■ 



USING "<Literal con f ormador>" 
Sfmbolos para datos numericos 

Especificador ^f CaraCtereS Definition 
^ Posibles en campos 



// 



Ejemplo 



** 
$$ 

**< 



+ + + + 



1 


1 


Campo numerico 


#### 





1 


Punto decimal 


#.# 





1 


Expone signo delantero 

o trasero. 

Un numero positivo 


+//# 






tendra + 


###+ 






Los rwimeros negativos 








no pueden tener - 








delante 







1 


Signo trasero. Expone - 
si negativo, 
si no bianco 


##.##- 


2 


2 


Asterfscos delante 


**###.## 


1 


2 


Signo dolar flotante 
colocado antes del 
dfgito delantero 


$$##.## 


2 


3 


Relleno de aster iscos 
y dolar flotante 


«$#.## 


1 


1 


Usa coma cada tres 
dfgitos (solo a la 
izquierda del punto 
decimal) 


##,###,# 





4 


Formato exponencial. 
Se ajusta el numero 
de modo que el dfgito 
delantero sea 


#,##+ + + 



Para datos literales 



/ / 



no-cero. 



Solo el primer 

caracter. 

Campo de longitud 

constante e igual a 

nn+2 

Campo de longitud 

variable 



Capitulo 8 Pagina 71 — * 



PROGRAMACION AVANZADA 



9. Informacion de 

programacion avanzada 

Temas tratados en este capftulo 

* Posiciones 'legales' de texto 

* Caracteres de control 

* El sistema operativo 

* Estructura de interrupciones 

9.1 Ubicacion del cursor y codigos de control 

En diversidad de programas de aplicacion, el cursor de textos puede 
situarse fuera de la ventana vigente en pantalla. Diferentes operaciones 
fuerzan a que el cursor se situe en una posicion 'legal' antes de que puedan 
ser llevadas a cabo; y son: 

- la exposicion de un caracter 

- mostrando el cursor de texto (el 'rectangulito') 

- obedecer los codigos de control senalados con un asteri'sco 
en la lista presentada en las paginas siguientes. 

El metodo para forzar al cursor a situarse en una posicion legal, es el 
siguiente: 

a. Si el cursor esta a la derecha del margen derecho, se desplaza a la 
columna extremo-izquierda de la li'nea inmediatamente inferior. 

b. Si el cursor esta a la izquierda del margen izquierdo, se desplaza 
a la columna extremo-derecha de la li'nea inmediatamente superior. 

c. Si el cursor esta por encima del margen horizontal superior, la ventana 
se desplaza (se despliega) una li'nea hacia abajo, y el cursor se situa en 

la primera li'nea superior de la ventana. 

d. Si el cursor esta debajo del margen inferior, la ventana se desplaza 
(se despliega) una li'nea hacia arriba, y el cursor se situa en la li'nea mas 
inferior de la ventana. 

Las comprobaciones y operaciones se efectuan ademas en el orden en 
que la hemos mencionado. Las posiciones ilegales del cursor puede ser 
o negativas cuando esta situado fuera de la ventana por la izquierda 
o por arriba. 

Los codigos ASCII decimales de los caracteres (Apendice III) que caen 
dentro de la gama a 31, no muestran ningun si'mbolo al ser enviados 
a la pantalla de textos (y pueden hacer que el sistema operativo se quede 
'colgado' si no se usan juiciosamente) sino que son interpretados como 
CODIGOS DE CONTROL (y llamados tambien 'caracteres motivos' para 
distinguirlos de los 'visivos'). 



Capftulo 9 Pagina 1 



PROGRAMACION AVANZADA 



Algunos de ellos, y especialmente el de codigo decimal 27, hace que los 
caracteres enviados a continuacion ESCAPEN del convenio habitual de 
significados. Y pueden usarse como parametros de la accion ejercida por 
ese 'codigo de control'. 

Cuando se envian a la pantalla de graficos estos caracteres de control, 
mostraran un si'mbolo relacionado con su funcion cuando son impuestos 
por medio del teclado (e.g. CTRL y G), pero solamente ejerceran el 
control que tienen asociado, si son enviados usando directamente el 
comando correspondiente (v.g. PRINT CHR$(&07). (Vease la descripcion 
de la palabra reservada TAG en el capftulo 8). 

Los codigos senalados con un asterisco en la lista siguiente, fuerzan al 
cursor a situarse en una posicion legal en la corriente ventana, antes 
de que sean obedecidos; pero pueden dejar el cursor en una posicion ilegal. 
Los codigos y su significado se describen primero por su valor en notacion 
hexadecimal (&XX) y luego por el equivalente decimal. 



Comandos adicionales mediante codigos de control: no accesibles 
generalmente vfa el teclado, usando la tecla CTRL. 



Codigo Nombre Parametro 



600 NUL 

601 1 SOH 



602 2 STX 

603 3 ETX 



0..255 



604 4 EOT 

605 5 ENQ 

606 6 ACK 

607 7 BEL 

Capftulo 9 Pagina 2 



0..2 



0..255 



Significado 

Ningun efecto. Se ignora. 

Expone el si'mbolo correspondiente 
al valor del parametro. Permite 
mostrar los si'mbolos dentro de 
la gama a 31. 

Vuelve invisible el cursor de texto. 

Vuelve visible el cursor de texto. 
Retiene internamente la exposicion 
del cursor, y solo lo libera cuando 
esta esperando un ingreso por 
teclado. 

Fija modo de pantalla, congruente 
con el parametro MOD 4. Equivale 
al comando MODE. 

Envia el caracter correspondiente 
al parametro a la posicion del 
cursor de graficos. 

Activa una pantalla de texto 
(vease &15, NAK). 

Produce pitido. Observa que con 
esto se cierran y vaci'an los canales 
de sonido. 



PROGRAMACION AVANZADA 



Codigo Nombre Parametro 

608 8 * BS 

609 9 * TAB 
&0A 10 * LF 

&0B 11 * VT 

&0C 12 * FF 



&0D 13 * CR 



&0E m- * SO 



&0F 15 SI 



&10 16 * DLE 



&11 17 * DC1 



0..15 



0..15 



&12 18 * DC2 



&13 19 * DC3 



Significado 

Retrocede el cursor una posicion. 

Avanza el cursor una posicion. 

Desplaza el cursor avanzando 
una linea. 

Desplaza el cursor una linea hacia 
arriba. 

Limpia la ventana de texto y 
coloca el cursor en la esquina 
superior izquierda. Equivalente 
al comando CLS. 

Retorno de carro. Desplaza el 
cursor al borde izquierdo de la 
ventana dentro de la linea vigente. 

Fija el tinte del papel, al valor 
del parametro MOD 16. Equivalente 
al comando PAPER. 

Fija la tinta de la pluma, al valor 
del parametro MOD 16. Equivalente 
al comando PEN. 

Suprime el caracter corriente, 

y rellena esa posicion con el valor 

corriente del tinte del papel. 

Limpia desde el borde izquierdo 
de la ventana hasta -e incluyendo- 
la posicion corriente del cursor. 
Las posiciones afectadas se 
rellenan con el valor corriente 
del tinte del papel. 

Limpia desde -e incluyendo- la 
posicion corriente del cursor hasta 
el borde derecho de la ventana. 
Las posiciones afectadas se 
rellenan con el valor corriente 
para el tinte del papel. 

Limpia desde el comienzo de 
la pantalla hasta -e incluyendo- 
la posicion corriente del cursor. 
Las posiciones afectadas se 
rellenan con el valor corriente 
para el tinte del papel. 



Capftulo 9 Pagina 3 



PROGRAMACION AVANZADA 



Codigo Nombre Parametro 

&14 20 * DC4 



&15 21 NAK 



&16 22 SYN 



&17 23 ETB 



&18 24 



&19 25 



CAN 



EM 



&1A 26 



SUB 



0..1 



0..3 



0..255 
0..255 
0..255 
0..255 
0..255 
0..255 
0..255 
0..255 
0..255 



1..80 
1..80 
1..25 
1..25 



Significado 

Limpia desde -e incluyendo- la 
posicion corriente del cursor hasta 
el fin de la ventana. Las posiciones 
afectadas se rellenan con el valor 
corriente para el tinte del papel. 

Desactiva la pantalla de texto. 
Por tanto, no reaccionara a nada 
de lo que se le envia hasta despues 
de recibir el codigo ACK (&06). 

Parametro MOD 2 
activa(l)/desactiva(0) la opcion 
de transparencia. 

Parametro MOD k 

fija la modalidad de graficos: 

1 ' XOR"' 

2 ' AND'" 

3 ' OR'" 

Intercambia la tinta del papel 
y pluma. 

Vease la forma de definir TIPOS 
de caracteres por el usuario. 
Equivale al comando SYMBOL. 
Exige 9 parametros, el primer 
parametro identifica el numero 
del caracter que se redefine. 
Los siguientes 8 parametros 
especifican cada uno de los 8 
TRAZOS del caracter al exponerlo 
en pantalla. Y se comienza a 
partir de la esquina superior 
izquierda, desplazandose hacia 
la derecha hasta completar un 
trazo, y luego continuando con 
los trazos inferiores, hasta terminar 
el ultimo trazo en la esquina 
inferior derecha del caracter. 

Define y situa una ventana en 
la pantalla. Equivale al comando 
WINDOW. 

Los dos primeros parametros 
especifican el costado izquierdo 
y derecho de la ventana, 
correspondiendo el valor mas 
pequeno al costado izquierdo, 
y el mayor al derecho. 



Capftulo 9 Pagina * 



PROGRAMACION AVANZADA 



Codigo 



Nombre 



Paramero 



&1B 27 
&1C 28 



ESC 
FS 



&1D 29 



GS 



0..15 
0..31 
0..31 



0..31 
0..31 



Significado 

Los segundos dos parametros 
especifican el largero superior 
e inferior de la ventana -el valor 
mas pequeno se toma como largero 
superior, el mayor como largero 
inferior. 

Ningun efecto. Se ignora. 

Elige como tinta una pareja de 
colores. Equivalente al comando 
INK. El primer parametro (MOD 
16) especifica el numero de tinta. 
Los siguientes dos (MOD 32) los 
colores elegidos. 

Elige para el borde un par de 
colores. Equivalente al comando 
BORDER. Los dos parametros 
(MOD 32) especifican los dos 
colores. 

Desplaza el cursor a la esquina 
superior izquierda de la ventana. 

Ubica el cursor en una determinada 
posicion de la ventana corriente. 
Equivalente al comando LOCATE. 
El primer parametro sefiala la 
columna; el segundo la linea. 



9.2 El sistema operativo 

Las 'labores domesticas' del CPC464 son llevadas a cabo por un conjunto 
de programas organizados y grabados permanentemente en la memoria, 
que se conocen con el nombre de sistema operativo del ordenador. El 
sistema operativo es como un 'director de orquesta', o mas bien debe 
verse como un 'guardia de trafico' entre los diversos circuitos del 
ordenador, incluyendo las entradas y salidas. 

Primordialmente, es el intermediario entre los circuitos electronicos y 
el interpretador BASIC. Asi' por ejemplo, cuando en tu programa pides 
que seponga en marcha el parpadeo de texto, el BASIC interpreta tus 
instrucciones y pasa los parametros correspondientes al sistema operativo 
que se encarga realmente de la tarea. Por lo tanto, el primero -el BASIC- 
determina lo que se requiere, y el segundo -el sistema operativo- lleva 
a cabo la realizacion de las acciones subsecuentes. 



&1E 30 
&1F 31 



RS 

US 



1..80 
1..25 



Capftulo 9 Pagina 5 



PROGRAMACION AVANZADA 



El sistema operativo de las maquinas modernas se conoce tambien, 
generalmente, con el termino ingles de 'firmware', para indicar que esta 
a medio camino (firme) entre el hardware (duro) y el software (blando). 
Y esta constituido por las rutinas que escritas en codigo maquina y 
grabadas de manera permanente e indeleble en la memoria, son reclamadas 
por el interpretador BASIC para que lleven a cabo las acciones conducentes 
a la cumplimentacion de las instrucciones y comandos que le has mandado. 

Aunque es practicamente (casi) imposible que se quede 'colgado' el 
ordenador CPC464 cuando estas ejecutando un programa escrito en BASIC, 
a no ser que utilices mal el comando ON BREAK GOSUB, sf es 
relativamente facil que causes un 'gripado de meninges' que solo pueda 
resolverse mediante una restauracion completa de las condiciones iniciales, 
con la subsecuente perdida de todo el programa, datos, etc., si te embarcas 
en la excitante aventura del codigo maquina. (Si no quieres emplear esos 
terminos tan rebuscados, df simplemente que son CIRCUITOS electronicos 
donde radica toda la "mollera congenita" de la maquina). 

Si estas tentado de ir 'hincando' valores por toda la memoria, mediante 
el comando POKE, y 'cediendo' el control de la maquina, usando el 
comando CALL, por donde se te ocurra, guarda primero tu programa 
en le cassette, y habiendo sacado un listado, antes de hacerlo; o puede 
que tengas que arrepentirte despues. El amplio y potente sistema operativo 
del CPC464 se describe en la' "Gufa para el Usuario Avanzado", y se sale 
del ambito de esta gufa para el usuario principiante. 



9.3 Interrupciones 

El CPCf64 aprovecha ampliamente la estructura de interrupciones que 
posee el microprocesador Z80, para disponer de un sistema operativo 
que incluye varias facultades de multitarea, de las que has podido apreciar 
los comandos AFTER y EVERY, descritos en el capitulo 8. La prioridad 
de los 'cronometradores' que generan regularmente senales de interrupcion, 
es: 

Ruptura ESC ESC 

Temporizador 3 

Temporizador 2 (y los tres canales de sonido) 

Temporizador 1 

Temporizador 

Debieras incluir el tratamiento por interrupciones, despues de considerar 
las consecuencias sobre los posibles estados intermedios de las variables 
en el momento de la interrupcion. La propia subrutina que atienda las 
interrupciones, debe evitar interacciones no deseables con el estado de 
las variables en el programa principal. 



Capitulo 9 Pagina 6 



PROGRAMACION AVANZADA 



Los canales de sonido disponen de circuitos para interrupciones, 
independientes y de igual prioridad. Una vez que cualquier canal ha 
suscitado una interrupcion, no se ve interrumpido por ningun otro; 
permitiendo asi' que los comandos de sonido compartan las variables con 
inmunidad ante los efectos mencionados mas arriba por la estructura 
de interrupciones de los temporizadores. 

Cuando en el programa se suscita una interrupcion para un canal de sonido, 
este se tramitara inmediatamente si en el canal el 'chorro de notas 1 
pendientes no esta completo; y en caso contrario, se tramitara dicha 
interrupcion cuando arranque la siguiente nota y haya, por tanto, sitio^ 
para poner otra al final del 'chorro'. Como al tramitarse la interrupcion 
se inhibe el funcionamiento de los circuitos generadores de interrupciones, 
la subrutina debe, antes de terminar, quitar esa inhibicion si se desea 
seguir recibiendo las posibles senales de interrupcion posteriores. 

El intento de enviar un sonido a un canal, o la comprobacion del estado 
de un canal, tambien inhiben el funcionamiento de los generadores de 
senales de interrupcion. 

La prioridad de la secuencia ESC ESC, sobre todas las otras posibles 
senales de interrupcion, asegura que la operacion del programa BASIC 
puede ser suspendida temporalmente sin perdida del programa, siempre 
y cuando no se hayan efectuado acciones auxiliares para cerciorarse de 
la integridad del programa mediante una de las diversas tecnicas de 
proteccion. 



9.3 Ensamblador AMSOFT 

Con el fin de programar frecuentemente en codigo maquina, sera necesario 
usar el ensamblador. El ensamblador AMSOFT consta de un ensamblador 
reubicable del procesador Z80, junto con editor, desensamblador y 
monitor. 



Capftulo 9 Pagina 7- 



PROGRESANDO 



10. Posibilidades de inter rupc ion 

Temas comentados en este capftulo: 

* DESPUES DE equis tiempo... AFTER 

* CADA equis tiempo... EVERY 

* ,-Cuanto tiempo QUEDA para...? REMAIN 

* Los cronometradores 



Ya habras observado una de las mayores innovaciones del CPC464. Es 
su habilidad -unica en el mercado- para tratar interrupciones dentro de 
los programas BASIC; lo que significa que BASIC AMSTRAD es capaz 
de efectuar varias tareas simultanea y separadamente dentro de un mismo 
programa. Esta facultad de los ordenadores se denomina algunas veces 
como 'multitarea', y se consigue mediante los comandos AFTER y EVERY. 

Esa misma facultad tambien queda demostrada claramente en la manera 
en que se maneja la generacion y emision de sonidos por los tres canales 
dispnibles, permitiendo construir CHORROS DE NOTAS EN ESPERA, 
y ACORDES ENTRE CANALES. 

Todo lo referente a los intervalos de tiempo en el CPC464 esta gobernado 
por un 'reloj patron' consistente en un circuito electronico de precision 
que incorpora un cristal de cuarzo, y de diversos circuitos electronicos 
que dentro del ordenador se preocupa de temporizar y sincronizar^ las 
labores y tareas que realiza el ordenador, tales como la generacion de 
senales de barrido para el monitor, y el envio constante de impulsos hacia 
el microprocesador, etc. Siempre que hay un circuito que desempena 
una funcion relacionada con el tiempo, esta en estrecha correlacion con 
las senales procedentes del reloj maestro. 

El avance en programacion reside en los comandos AFTER y EVERY, 
que para mantener el enfoque comprensible del BASIC AMSTRAD con 
respecto a sus usuarios, hacen precisamente lo que dicen (y los que no 
sabeis ingles, volver a mirar el epigrafe de este capftulo para poneros 
en igualdad de condiciones inmediatamente). 



10.1 AFTER DESPUES DE 

El comando AFTER se incluye en un programa BASIC para conseguir 
que se ejecuten determinadas tareas DESPUES DE transcurrido un 
determinado tiempo desde la ultima vez que se ejecutaron. En el CPC464 
se dispone de cuatro 'cronometradores', cada uno de los cuales puede 
tener asignado que transcurrido un determinado tiempo, obligue al 
programa a hacer un alto en sus operaciones y pasar a ejecutar una tarea 
predeterminada. La sintaxis para esta instruccion es: 



-Capftulo 10 Pagina 1 



PROGRESANDO 



AFTER (expresion entera> t, texpresion entera)] GOSUB <nu»ero de linea) 

El primero de los parametros enteros, especifica CADA cuanto tiempo 
tiene que efectuarse la tarea expresada por un 'parrafo' del programa 
que comienza en el numero de linea mencionado en la instruccion. Este 
intervale- de tiempo se mide en 1/50 de segundo. 

El segundo parametro entero especifica cual de los cuatro posibles 
cronometradores es el encargado de llevar la cuenta del tiempo 
transcurrido. Por lo tanto, este parametro debe estar en la gama a 3; 
y si se omite, se presupone el cronometrador 0. 

Cuando ha transcurrido el intervalo especificado, se CEDE el control 
de la maquina a la subrutina, de la misma manera que cuando se ejecuta 
un comando GOSUB en el programa. Como la subrutina terminara con 
un comando RETURN, hara que el control VUELVA al programa principal 
que continuara ejecutandose justo en el punto donde se vio interrumpido. 

Los cronometradores (temporizadores) tienen diferentes prioridades para 
sus senales de interrupcion. El temporizador 3 tiene la maxima perioridad 
y el temporizador la minima. 

En cualquier punto del programa se puede incluir el comando AFTER, 
con lo que se 'arredran' (ponen a cero) los cronometros mencionados en 
la instruccion, y comienzan su labor a partir de ese mismo instante. 

Como los temporizadores son los mismos que los usados en el comando 
EVERY, un comando AFTER anula cualquier comando EVERY anterior 
que use el mismo numero de temporizador; y viceversa. 

Veamos un ejemplo: 

10 MODE 1:X=0 

20 AFTER 45 GOSUB 100 

30 AFTER 100, 1 BOSUB 200 

40 PRINT "AMSOFT" 

50 WHILE X<100 

60 LOCATE #1,30, l: PRINT #1,X:X=X+1 

70 WEND 

80 END 

100 PRINT "perifericos" 

110 RETURN 

200 PRINT "y software" 

210 RETURN 



Capftulo 10 Pagina 2- 



PROGRESANDO 



Observa el uso de dos CAUCES de comunicacion con la pantalla, lo que 
implica dos ventanas; lo que permite a las subrutinas que tratan las 
interrupciones exponer mensajes independientemente de los que exponen 
el programa 'principal' (liheas 50 a 80). 

DESPUES de haber transcurrido el tiempo preestablecido en una u otra 
linea del programa, este se DESVIA hacia la subrutina mencionada en 
la instruccion y efectua la tarea descrita en ese 'parrafo'. 



10.2 EVERY CADA 

El comando EVERY hace que CADA cierto tiempo, el programa suspenda 
la operacion que este ejecutando y se DESV1E para efectuar una 
determinada tarea, y que una vez terminada VENGA a continuar la que 
estaba haciendo. Se dispone ademas de cuatro cronometros 
(temporizadores), a cada uno de los cuales se le puede encargar de 
interrumpir la ejecucion del programa principal. La sintaxis de este 
comando es: 

EVERY {expresion entera) C, {expresion enteral] GOSUB (nuaero de linea) 

El primer parametro entero, especifica el intervalo de tiempo entre dos 
'desvios' sucesivos al parrafo del programa que comienza en el numero 
de linea citado en la instruccion. El tiempo se mide en 1/50 de segundo. 

El segundo parametro entero, especifica cual de los cuatro posibles 
temporizadores es el encargado de generar las senales de interrupcion. 
El valor de este parametro debe estar en la gama a 3; y si se omite, 
se adopta el temporizador 0. 

Cuando ha transcurrido el intervalo de tiempo especificado, 
automaticamente se produce el desvio a la subrutina correspondiente, 
igual que ocurre cuando se incluye un comando GOSUB en un punto del 
programa. Los temporizadores tienen prioridades diferentes en cuanto 
a sus senales de interrupcion. El temporizador 3 tiene la maxima prioridad, 
y el temporizador la minima. 

10 MODE l:X=0 

20 P200=0: EVERY 10 GOSUB 100 

30 P200=0:EVERY 12,1 BOSUB 200 

40 PRINT "AMS0FT" 

50 WHILE X<200 

60 LOCATE #1,30, l: PRINT #1,X:X=X+1 

70 WEND 

80 LOCATE 1,20: END 

100 DI:PEN P100:L0CATE 1,2: PRINT "peri fericos" :EI 

105 IF PI 00=0 THEN PI 00=1 ELSE PI 00=0 



■Capftulo 10 Pagina 3- 



PROGRESANDO 



110 RETURN 

200 PEN P200: LOCATE 1,3: PRINT "y software" 
205 IF P200=2 THEN P200=3 ELSE P200=2 
210 RETURN 

OBSERVA el uso de los comando DI y EI, que 'inhiben' la tramitacion 
de otras posibles interrupciones antes de empezar a ejecutar las tareas 
propias, y quitan esa inhibicion una vez que han terminado, respectivamente. 
Eso tiene como efecto demorar la tramitacion de las interrupciones 
suscitadas por el temporizador 1 (que tienen mayor prioridad), durante 
el tiempo en que se esta tramitando la interrupcion suscitada por el 
temporizador 0. Por lo tanto, impidiendo que los parametros de ubicacion 
del cursor o de color de pluma usados en la rutina 100 a 110, se vean 
alterados por el programa principal. 



10.3 REMAIN QUEDA 

Esta funcion REMAIN entrega como resultado el tiempo que QUEDA ^ 
por transcurrir en el temporizador dado por el argumento de la funcion. 
Al mismo tiempo inhibe la generacion de senales de interrupcion por 
parte de ese temporizador, y entrega el valor si el temporizador esta 
previamente inhibido. Su sintaxis es: 

REMAIN Uexpresi on entera)) 



Capitulo 10 Pagina 4- 



CAPACIDAD DEL ORDENADOR 



Apendice I: 



El Arte de lo posible 



El recien Uegado a la informatica, comienza por establecer algunos puntos 
de referenda que le ayuden a conseguir una panoramica sobre las 
capacidades y limitaciones del ordenador. Esta seccion esta pensada para 
darle una gufa muy general sobre lo que sucede y su porque. 



Fuera el hechizo! 

Y aunque la unica razon para comprar tu CPC464 haya sido el aprovechar 
los imaginativos juegos disponibles para funcionar en el 'cacharro', es 
probable que todavia te estes preguntando sobre diversos aspectos de 
los ordenadores que vienen bajo el termino generico de CIRCUITOS (que 
como son "duros" de alterar, los ingleses lo llaman 'hardware 1 . 

Esos aparatos que recoges y te llevas a casa: el ordenador con su teclado, 
el monitor, los cables de conexion, etc. son precisamente la 'circuitalia'. 
De hecho, es todo lo que no es especi'ficamente la 'programalia', que 
como es 'bianco', y por tan to facilmente alterable, los ingleses lo llaman 
'software'. 

Independientemente de los nombres usados, la unica innovacion que 
presentah los ordenadores es: jjlos PROGRAMAS estan imbuidos en los 
CIRCUITOS!! 

Ciertas facetas en la manera que funciona un ordenador, estan producidas 
merced a los circuitos: cosas como la imagen policroma de un aparato 
de TV o de un monitor; y es mision de los programas haCer uso de esta 
capacidad de los circuitos para producir caracteres y figuras en la pantalla 
especi'ficamente disenados. Los circuitos controlan realmente el haz de 
electrones proyectado sobre la superficie electroluminiscente interna 
de la pantalla de un tubo de television y hacerla que se ilumine. Los 
programas anaden el orden y la inteligencia para comunicar a los circuitos 
cuando y donde tienen que actuar. Anaden temporizacion, control y 
procesado consecutivo para conseguir el efecto del despegue de un avion, 
o de algo mas vulgar como una carta apareciendo en pantalla cuando 
tipografi'as en el teclado. 



iQue hace que un ordenador sea mejor que otro? 

Los circuitos sin programas no valen nada. Los programas sin los circuitos 

ni siquiera tienen donde residir; el valor del ordenador comienza cuando 

se reunen ambos para efectuar diversas tareas. Hay algunas consideraciones 

fundamentales que pueden emplearse para graduar el rendimiento de ambos 

programas y circuitos integrados en un sistema. 
Apendice I Pagina 1 — ' 



CAPACIDAD DEL ORDENADOR 



Los puntos de referenda generalmente aceptados para los ordenadores 
personales, son en estos momentos: 

1. La resolucion en pantalla: la mota mas pequena que todavia es 
discernible. 

Es una combinacion de factores, incluyendo el numero de colores diferentes 
manejables por el operador, el numero de areas distintas que pueden 
diferenciarse en la pantalla (las 'motas'). El numero de caracteres 
tipograficos que pueden mostrarse en una sola area de pantalla. 

Hallaras que tu CPC464 compara muy favorablemente en todos estos 
aspectos con cualquier maquina de precio similar. 

2. El interpretador BASIC. 

Virtualmente todo ordenador casero incorpora un interpretador BASIC 
que permite al usuario comenzar a crear programas y a usar las facultades 
de los circuitos. El lenguaje de programacion incorporado (BASIC) que 
se suministra con tu maquina, es por si' mismo un programa -un 
inmensamente complicado e intrincado programa que ha evolucionado 
durante un millon de hombres/anos de experiencia desde que se 'invento' 
en los Estados Unidos. 

Este 'codigo de instrucciones simbolicas, de proposito general, para 
principiantes' es con mucho, el lenguaje informatico mas ampliamente 
usado en el mundo, y como cualquier otro lenguaje se presenta con una 
variedad de 'dialectos' locales. La version en el CPC46^ es uno de los 
dialectos mas ampliamente compatibles, y podra ejecutar muchos de los 
programas BASIC comunes y escritos para operar con el sistema operativo 
de disco CP/M. Es una implementacion de BASIC muy rapida -lo que 
en otras palabras significa que efectua sus calculos rapidamente- y mientras 
puede que no te concierna demasiado que un ordenador puede tardar 0,05 
segundos en multiplicar 3 por 5, y mostrar el resultado; otro ordenador 
puede tardar 0,075 segundos en hacer lo mismo; y cuando un programa 
que dibuja modelos graficos en la pantalla, puede exigir muchos millares 
de simples calculos relativos, la diferencia entre 0,05 segundos y 0,075 
segundos en una operacion llega a acumularse a una diferencia en tiempo 
total muy considerable. 

Frecuentemente, oiras que se usa el termino 'codigo maquina'. Codigo 
maquina es una forma basta de codigo de instrucciones que pueden pasarse 
al microprocesador. El tarda menos tiempo en interpretar lo que se le 
ha pedido hacer, y se las arregla para producir el resultado de 5 a 15 
veces mas rapidamente que una operacion equivalente que tuviera que 
pasar a traves del interpretador BASIC. Pero se tarda de 5 a 50 veces 
mas escribir un programa equivalente en codigo maquina comparado 
con Uevar a cabo la misma tarea global usando BASIC. 



Apendice I Pagina 2 



CAPACIDAD DEL ORDENADOR- 



El BASIC en tu ordenador AMSTRAD, esta entre los mas rapidos, mas 
potentes y completos, que puedas encontrar en cualquier ordenador personal, 
e incorpora muchas muchas facilidades para que el programador BASIC 
experto venza parte de la inherente dificultad de un interprete de 'lenguaje 
de alto nivel' para efectuar sorprendentes efectos dinamicos, visuales 
y musicales. 




3. Ampliando y completando 

La mayori'a de los ordenadores prestan atencion a la necesidad de anadir 
equipos y artefactos adicionales: impresoras, 'joysticks' para juegos, 
ductoras de disco. Paradojicamente, algunos de los ordenadores personales 
de mas exito exigen la incorporacion de unidades adicionales conocidas 
como 'acopladores e interfaces' antes incluso de que pueda conectarse 
una simple impresora o un controlador de juegos. 

El comprador no siempre considera anticipadamente sus necesidades en 
el futuro, porque de lo contrario, una maquina que incorporara 
adecuadamente el acoplador necesario para una impresora compatible 
con una norma standard como Centronics, y ademas lo necesario para 
el control de juegos, puede que realmente sea mas barato a la iarga. 

El ordenador CPC464 tiene incorporado un 'portal de salida' para impresora 
Centronics;, facilidades para hasta dos joysticks de juegos; una salida 
de sonido estereo; y un completo bus de interconexion que puede usarse 
para equipos de almacenamiento en disco, memorias preprogramadas 
adicionales, impresoras segun la norma RS232, etc. 

Una memoria preprogramada que solo permite operaciones de lectura. 
Memoria de Solo Lectura (Read Only Memory) es un circuito integrado 
en el que esta grabada informacion concerniente a un programa. El BASIC 
que se suministra con tu ordenador, esta grabado en uno de esos circuitos, 
y es posible que otros programas sean suministrados asf, ya sea para 
suplementar el programa incorporado, o sustituir completamente sus 
funciones por otras. 



Apendice I Pagina 3- 



CAPACIDAD DEL ORDENADOR 



Las consolas de juegos en TV, usan programas grabados en 'cartuchos'. 
Y esos cartuchos son en esencia, tambien circuitos de memorias 
preprogramadas, alojadas en una carcasa plastica y con una forma u otra 
de ser enchufado rapidamente para permitir meterlo y sacarlo muy 
facilmente. Por lo tanto, esta clase de circuitos memorizadores proveen 
la misma funcion que las cassettes en las que depositas tus programas. 
Sin embargo, tienen la ventaja de que cargan la informacion en la memoria 
del ordenador de una forma virtualmente instantanea en comparacion 
con los varios minutos que tarda un programa largo en ser transferido 
de la cassette al ordenador; y por tanto, su mayor ventaja es una de 
absoluta conveniencia, que hay que examinar contra su total imposibilidad 
de ser usadas para almacenar informacion que saques de tu ordenador 
y que puedas llevar a otro ordenador de la misma manera que haces con 
el cassette Datacorder de tu CPC464. 

Por tanto, con el bus de interconexion, tienes garantizado que tu ordenador 
podra ir incorporando la mayoria de los desarrollos que en programacion 
y electronica se hagan, y el sistema CPC464 tiene las posibilidades de 
ampliacion muy completas y extremadamente documentadas. 

4. Sonidos 

Las posibilidades sonoras de un ordenador determinan si suena o no como 
moscardones dentro de un bote de hojalata, o puede producir una 
reproduccion aceptable de un instrumento musical electronico. 

El ordenador CPC464 usa un generador de sonidos con 3 canales y 8 
octavas, que puede producir una calidad musical muy aceptable, con 
control completo sobre las envolventes de volumen y de tono. Ademas, 
el sonido esta dividido segun una configuracion estereo, donde uno de 
los canales corresponde a la salida izquierda y el otro canal a la derecha, 
con el tercero situado en el medio. 

Eso ofrece un panorama considerable para escribir programas que repiquen 
graficamente en la pantalla los efectos sonoros para acompanar el 
movimiento en los juegos tipicos modernos. 

Al final, tu tomaras tu decision sobre cual de estas facetas es mas 
importante en tu caso. Esperemos que ensayes todas ellas para sacar 
el maximo provecho de tu ordenador. 



^Por que no puede? 

Con toda la potencia de la moderna tecnologia, los usuarios se preguntan 
a menudo por que incluso una maquina tan avanzada como el CPC^64, 
es aparentemente incapaz de mostrar la clase de imagenes vistas en 
cualquier aparato de television. 



L 



Apendice I Pagina * 



CAPACIDAD DEL ORDENADOR 



^Por que, por ejemplo, no puede un ordenador animar una figura de una 
persona paseando a traves de la pantalla en una forma natural? ^Por que 
todos los ordenadores representan el movimiento con figuras que parecen 
hechas con cerillas? 




La respuesta aunque compleja, es simple. No debes ser persuadido a creer 
que la imagen producida de tu ordenador tiene algo de la argucia empleada 
en las imagenes de television. La imagen de television usa informacion 
y electronica de tipo continuo, con la que se puede describir una gama 
virtualmente infinita de grados entre los extremos de luz y oscuridad 
pasando por todos los colores del spectro. Este proceso significa que en 
terminos de medida de la informacion (y la unidad de medida es el bitio) 
la imagen de un televisor requeriria del orden de 20 veces mas memoria 
que las imagenes que la requerida para la imagen producida por un 
ordenador personal. Y eso implica pasar de memorias en Kilobitios a 
Megabitios. Y eso es solo parte del problema, dado que para dar 
movimiento a esa imagen requiere que esa enorme cantidad de memoria 
sea procesada a elevada velocidad (alrededor de 50 veces por segundo 
toda). Puede hac'erse, pero solo con maquinas que cuestan alrededor de 
mil veces mas que un ordenador personal como menos y en este momento. 

Hasta que el coste de las memorias de alta velocidad disminuya 
impresionantemente (lo que sucedera sin ninguna duda), los ordenadores 
pequenos tienen que apanarselas con una relativamente pequena cantidad 
de memoria para controlar la imagen en pantalla, lo que resulta en menor 
resolucion y movimientos espasmodicos, un diseno cuidadoso de los circuitos 
y una buena programacion tienen un largo camino para aprovechar lo 
mejor en esta situacion, pero todavia estan lejos los ordenadores baratos 
que puedan reproducir movimientos armoniosos e imagenes naturales de 
la misma manera comparable incluso a una pelicula de dibujos animados. 



Apendice I Pagina 5 



CAPACIDAD DEL ORDENADOR- 



^Por que no puedes simplemente sentarte al ordenador y teclear una 
pagina de simple texto en la maquina? 

Tampoco te confunda el hecho que el ordenador parece una maquina de 
escribir con una pantalla en lugar de papel. La pantalla no es un simple 
papel 'electronico', es en realidad un monitor que con el teclado forma 
la consola, que es el medio de comunicarte con los interpretadores de 
programas o con los propios programas que ocupan la memoria de la 
maquina. Hasta que le digas lo contrario, el ordenador examinara e 
interpretara todos los caracteres procedentes del teclado como comandos 
o instrucciones. Y en la mayoria de los ordenadores, simplemente los 
'escuchara' y repicara en la pantalla, hasta que pulses la tecla que le 
indica VALE, momento en que examinara lo que le has tecleado, y si 
no tiene sentido para el programa que gobierna su operacion, rechazara 
lo tecleado comentando: 



Sin embargo, puede simplemente suceder que el programa que reside 
en la memoria de tu ordenador en ese momento, esta pensado para 
elaboracion de textos, en cuyo caso podras ser capaz de teclear palabras 
segun tu propia discrecion, y meterlas hacia la memoria del ordenador, 
y hacer que se impriman por impresora, logrando casi que fuera una 
autentica y aventajada maquina de escribir. Pero para hacer todo ello, 
primero tendrias que instruir a la maquina para que supiera hacerlo, para 
lo que trasvasarias del cassette a la memoria de la maquina el programa 
pertinente. 

Un ordenador parece que combina diversos equipos que se han hecho 

familiares en el hogar y en la oficina: el monitor similar al televisor, 

el teclado a una maquna de escribir, el cassette, etc.; pero debes recordar 

que las similitudes son generalmente solo superficiales, y que el ordenador 

es una combinacion de 'circuitalia familiar' a la que la 'programalia' 

le confiere una personalidad completamente diferente y extraordinariamente 

VERSATIL. 




Apendice I Pagina 6 



EN LAS ENTRANAS DE LA MAQUINA 



Apendice II: 

Una introduccion a las intimidades de los ordenadores 

^Quien teme a la jerga? 

Como con todas las industrias especializadas, la informatica ha desarrollado 
su propio 'idiolecto' como una forma breve de comunicar conceptos 
complicados que exigen muchas palabras y largas frases para ser explicados 
con el lenguaje del vulgo. No es simplemente que la industria de alta 
tecnologi'a sea culpable de esconderse detras de una aparente pantalla 
de humo formada por 'palabras secretas 1 , jerga y terminologi'a; la mayoria 
de todos nosotros estamos contra esas barreras puestas a la comprension, 
pero sin embargo, erigidas en todas las profesiones y oficios principales. 

Una diferencia importante es que la confusion, por ejemplo, en la 'jerga 
legal' viene de la manera en que se usan las palabras, y no por las palabras 
en si' mismas, como es el caso del ordenador. La mayoria de la gente 
que aumenta su familiarizacion con la terminologi'a informatica, se saldra 
del camino para usar las palabras en la forma mas directa posible, para 
minimizar la complejidad de la comunicacion (y obviamente para teclear 
menos). 

No te confundas tampoco por el aparente 'simple lenguaje' usado en 
informatica, ya que no es un asunto literario, sino una ciencia precisa, 
y aparte de la sintaxis de las frases comunicadas al ordenador, la estructura 
de comunicacion es muy directa, y no puede en absoluto ser confusa o 
ambigiia. Los maestros de informatica y computos, somos todavi'a meros 
aprendices en el arte de transmitir conocimientos y el significado exacto 
que gui'a a un programador en la construccion de su programa. 

Habiendo dicho esto, aunque sea ahora obvio o no lo sea el significado 
de un programa y un ordenador, hay todavi'a muchos aspectos que pueden 
ser analizados y clasificados como elegantes o desordenados, y se esta 
poniendo un mayor enfasis en abordar formalmente la construccion de 
programas ahora que la inicial marejada levantada por la revolucion 
microinformatica se esta asentando. 

La informatica es rapidamente comprendida por muchos jovenes que 
aprecian la precision y simplicidad de las ideas, y la manera en que pueden 
comunicarse. Seguro que no encontraras muchos 'abogados con 10 anos 
de edad, y sin embargo encuentras multitud de ninos de 10 anos que ya 
son programadores. 



■ Apendice II Pagina 1 



EN LAS ENTRANAS DE LA MAQUINA 




Las bases del BASIC 

Virtualmente, cualquier ordenador casero esta dotado del lenguaje llamado 
BASIC, que permite escribir los programas en la jerga mas cercana al 
lenguaje vulgar disponible hoy. 

El significado de donde BASIC derivo su nombre (en lo referente a 
'principiantes=beginners') ya no tiene ningun significado particular dado 
el grado de complejidad de los lenguajes, y que hay programas 
extremadamente complejos y potentes escritos usando el lenguaje BASIC. 
Sin embargo, no hay duda que el acierto en la eleccion del nombre, ha 
trai'do a muchos principiantes por su promesa de suministrarles la BASE 
para adentrarse en la marana de lenguajes informaticos, y eso si' ha 
contribuido de forma significativa a su universalidad. A partir de aqui', 
las palabras comunmente usadas que forman el glosario de terminos 
informaticos seran presentadas imprimiendolas primeramente en negrita. 
tyo intentes aprenderlas solo con las siguientes secciones, tambien hay 
un indice y esta el resto del manual. 



La Base 

BASIC es un lenguaje informatico que interpreta un cierto surtido de 
frases imperativas, y que efectua operaciones sobre los datos, cuando 
en la maquina hay un programa ejecutandose. A diferencia del vocabulario 
medio humano de 5 a 8.000 palabras (mas todos los diferentes modos 
verbales que pueden usarse), el lenguaje BASIC tiene suficiente con cerca 
de 200 palabras clave. Los programas para ordenadores que se escriben 
usando BASIC, tienen que seguir reglas rigidas en cuanto al uso de esas 
palabras. La sin taxis es precisa, y cualquier intento de comunicar con 
el ordenador usando expresiones coloquiales y vulgares (lenguaje) dara 
como resultado el frio y mecanico mensaje: 

Syntax Error 
-Apendice II Pagina 2 



EN LAS ENTRANAS DE LA MAQUINA 



y no es tan restrictivo como a primera vista aparece, dado que el lenguaje 
BASIC esta disenado primordialmente para manipular numeros: los datos 
numericos. Las palabras son en esencia, una ampliacion de los operadores 
matematicos ya familiares (+ / - etc.) y el concepto mas importance 
para los principiantes es 'aprehender' el hecho que el ordenador solo puede 
trabajar con datos e informacion que utiliza un convenio universal basado 
en el sistema de numeracion DOS para dar nombres a las senales electricas 
que se transfieren entre el microprocesador (que es la unidad central 
en los grandes ordenadores), los circuitos memorizadores y canalizadores, 
y las diversos circuitos de los equipos perifericos. 



NUMEROS POR FAVOR 

Si un ordenador se usara para conservar las obras completas de Cervantes, 
y nos armaramos con el instrumental adecuado, es bastante obvio que 
no podriamos encontrar ninguna letra o palabra en ninguna parte del 
sistema. Pero si' podemos encontrar sitios en el sistema donde la presencia 
o ausencia de senal electrica, adecuadamente interpretada, guarda una 
estrecha relacion con las inmortales palabras de Cervantes. 

Es mucho mas simple entonces hablar de que BASIC interpreta las letras 
y palabras como numeros unicamente, que el ordenador puede manipular 
usando las operaciones matematicas habituales y las comparaciones 
estudiadas como logica de Boole, que le permiten determinar si un numero 
es mayor que otro, y si una letra va antes que otra de acuerdo con el 
alfabeto que maneje; y 'elegir' la tarea a realizar dependiendo de si se 
cumplen o no ciertas condiciones. 

Y ademas, para que pueda realizar una tarea, se le tiene que desglosar 
pormenorizada y exactamente en una serie de esas operaciones elementales, 
cada una con su frase convenida con el, y esa serie de frases es lo que 
denominamos PROGRAMA. 

Y ademas, depende del lenguaje utilizado ese detalle puede ser mayor 
o menor. Y si por ejemplo, operas en codigo maquina es normal que el 
proceso de multiplicacion se lo tengas que detallar como repeticion de 
sumas del multiplicando, tantas veces como indica el multiplicador, porque 
el microprocesador utilizado no sabe mas que sumar. En BASIC alguien 
preparo ese detalle, lo introdujo en la maquina y decimos que la maquina 
ya sabe multiplicar. Y por ello, ya puedes decir en BASIC una instruction 
que obligue al ordenador a multiplicar, por ejemplo, 35 por 10 y te de 

el resultado en lo que has llamado variable A. Y se lo tendrias que decir 
de acuerdo con la sintaxis, en la forma: LET A=35*10. 



•Apendice II Pagina 3- 



EN LAS ENTRANAS DE LA MAQUINA 



Para llevar a cabo lo que has requerido, en algun sitio de la unidad central 
de proceso (con las siglas inglesas CPU), se graba el operando 10, y en 
otra parte el otro operando 35. Luego, la maquina bajo el control del 
interpretador BASIC, lo que hace en realidad es considerar el sitio donde 
tiene alojado en 10 como un contador del que va restando 1, al mismo 
tiempo que va acumulando la suma de 35+35+35+... en otro sitio del 
circuito, y detiene el proceso cuando ese contador ha llegado a 0, momento 
en que el resultado de 350 es enviado (y no olvides que lo que viajan 
son electrones, y esto es solo es una cierta forma de hablar) a otro sitio 
para que sea sacado y mostrado como respuesta. 




Si todo este proceso te suena demasiado aburrido, tendras razon, y habras 
descubierto la primera y mas importante verdad sobre los ordenadores. 
Un ordenador es simplemente una maquina 'extremadamente tonta y 
extremadamente rapida', por lo que solo puede hacer tareas simples y 
repetitivas, pero las hace a toda velocidad y sin cansarse. 

En un ordenador solo DOS estados son reconocidos en las senales 
electricas de sus circuitos; y esos estados solo necesitan por tanto dos 
simbolos para ser representados, de ahi' que se llame sistema binario, 
y a esos dos simbolos se denominen BIToS; y los habituales son 'si'' y 
'no', 'A' y 'B'; y los que tu quieras. Todo esto conecta ademas con la 
mencionada logica de BOOLE basada en la 'certeza' y 'falsedad' de la 
vida normal. Y a partir de ahi' se construye todo lo demas. 



Apendice II Pagina k- 



EN LAS ENTRANAS DE LA MAQUINA 



El proceso de considerar unicamente dos estados distinguibles en una 
determinada situacion, es la esencia del termino binario y de los que 
usando combinaciones de este, llamamos digital y discrete) (los electronicos 
tambien hablan de circuitos basculadores o biestables, porque solamente 
poseen dos estados estables y entre los que 'basculan'). Descomponiendo 
cualquier dato en combinaciones de 'ringlas de biestables' es posible de 
una manera ordenada y sistematica representar cualquier informacion, 
manipular posteriormente dicha informacion, y volver a convertirla para 
presentarla con sentido humane Todo eso aunque hecho a velocidades 
increibles de millones de cambios de estado en cada segundo, acaba 
llevando su tiempo y es el empleado por el ordenador en hacer una 
operacion. 

Ademas, el microprocesador tiene un tiempo finito para desarrollar una 
tarea que ha de cumplir antes de que pueda comenzar a tra-bajar en la 
siguiente tarea. Estos tratamientos binarios, son los que permiten pasar 
del 'bianco' al 'negro' y por combinaciones inteligentes de bianco y negro 
obtener toda la escala de grises, por ejemplo. 

Si la respuesta ultima analizando un solo punto solo puede ser 6 1, no hay 
posibilidad de ser 'casi' correcto, a no ser que se examinen varios puntos 
al mismo tiempo. El hecho de que los ordenadores pueden algunas veces 
cometer errores cuando manejan datos numericos, es debido a la limitacion 
de puntos binarios que puede analizar considerandolos como un grupo; 
y por tanto, con la precision que pueden conseguir sobre numeros decimales 
sobre los que operan. Y de ahf los errores que cometen en redondeos, 
v.g. decir 0,999999999 cuando deben simplemente un 1. 

En una palabra, si solo se mira un cable dentro del ordenador, solo hay 
dos estados posibles, y lo normal es decir: si hay tension hay un 1, y 
si no hay tension hay un 0; y para pasar de ahf, no queda mas remedio 
que utilizar cientos de miles de cables. 



Bitos y 'Bicos' 

Sucede que estamos acostumbrados a comprender las cantidades y 
reflejarlas en un numero basado en el sistema decimal que tiene como 
base el numero 10; y que por tanto, dispone de 10- simbolos diferentes 
de los que partir (y esos diez simbolos se llaman obviamente dfgitos 
porque digito viene de dedo). Y te recuerdo que son: 

0123456789 

En el sistema binario solo se dispone de dos simbolos y esos dos simbolos 
obviamente se llaman bitos y los habitualmente empleados son: y 1. 
Pero naturalmente, podriamos haber usado cualesquiera otros dos simbolos, 
y quiza evitariamos la cantidad de confusiones provocadas por el hecho 
de que tambien se emplean como digitos. 



•Apendice II Pagina 5- 



EN LAS ENTRANAS DE LA MAQUINA 



Pero igual que en el sistema binario formamos "sartas de digitos" para 
designar cantidades superiores a 9, de igual manera formamos sartas 
de bitos, para representar situaciones y cantidades y letras y cifras y 
todo 1q que queramos. Y usando esos si'mbolos en mi ordenador, cuando 
escribo mi nombre queda grabado como: 

0100101001110101011011000100100101101111 
que por supuesto, no hay quien sea capaz de manejar (salvo el ordenador). 

Por lo tanto, y como sucede en otras cosas, hay que dividir para veneer, 
y empieza a tener mas sentido si te la presento separada en la forma 
siguiente: 

0100 1010 0111 0101 0110 1100 0100 1001 0110 1111 

Esta separacion y agrupacion de bitos, equivale realmente a examinar 
simultanea y sucesivamente diversos puntos internos dentro del ordenador. 

Y puedes ver que hay grupos de cuatro, que llamamos cuartetos, y grupos 
de ocho, que llamamos octetos, por no decir dos cuartetos, u ocho bitos. 

Es un convenio internacional la manera en que se forman esos cortes 
y grupos para que todos entendamos su significado. Y el grupo mas 
importante es precisamente el numero de puntos que el ordenador 
internamente mira al mismo tiempo. Y aunque ese grupo depende del 
ordenador en cuestion, si' se le ha dado un nombre adecuado: se le llama 
'bocado', porque es lo que se traga en una sola tacada. Por supuesto que 
lo han hecho con la palabra inglesa correspondiente 'byte' (que tambien 
es mordisco) y los hispano-parlantes usan varias con preponderancia de 
'bico' (que mas que un mordisco es un beso). 

Ademas ya va siendo generalmente aceptado, hacerlo corresponder al 
octeto, debido precisamente a que la inmensa mayorfa de los ordenadores 
personales actuates es la cantidad de bitos que tratan de una sola vez, 
traen de la memoria o meten en la memoria, envian hacia los circuitos 
de pantalla, traen del teclado, sacan hacia la impresora, etc. 

Y ademas, tambien existen convenios internacionales para ver la 
equivalencia de esta NOTACION, con las otras notaciones empleadas 

para datos numericos (el sistema de numeracion en base 2) y datos literales 
(el codigo ASCII). 

Veamos primero el sistema de numeracion en base 2. Si recuerdas las 
matematicas estudiadas, veras que una determinada cantidad puedes decir 
que es 7 si empleas la notacion decimal, y puedes decir que es 00000111 
si empleas notacion binaria. Y para ello basta considerar que los bitos 
de ese bico son meramente indicatives de si has de usar o no la 
correspondiente potencia del numero 2. Es decir: 



Apendice II Pagina 6- 



EN LAS ENTRANAS DE LA MAQUINA 



2 7 


2 e 


2 s 


2" 2 3 


2 2 


2 1 


2° 











1 


1 


1 


1 


NO 


NO 


NO 


SI NO 


SI 


SI 


SI 



^> 



2 14 + 2 2 + 2 1 + 2° = 

16 + 4 + 2 + 1 ■ = 23 



Por tanto, con un bico (de los.de 8 bitos) el numero equivalente en el 
sistema decimal mas alto que puedes conseguir, sera: 

11111111 = 255 
00000000 = 

Y en total habra por tanto, 256 numeros diferentes; y ese numero ya 
empieza a serte familiar en cuanto empiezas a trabajar con ordenadores. 

Te sonaran en particular mucho mas sus multiplos, que van correspondiendo 
a las cantidades y numeros representables mediante parejas de bicos, 
cuartetos de bicos, y octetos de bicos. Porque si compruebas con una 
pareja de bicos podemos llegar a distinguir 256 x 256 = 65.536 que 
divididos por 1.024 (que ya veremos, es la famosa K), nos da exactamente 
64 que sin ninguna duda es el numero de bicos que tiene la memoria de 
muchisimos ordenadores (y si no has oido hablar de 64K, mejor que no 
sigas leyendo). 

12 3 4 5 6 7 

^^^^^^^^ 

2 ^^ouj^^^u, 

3 ^^^^^^^^ 

4 ^^^^^^^^ 

5 .^^^^^^^^ 

6 ^^^^^^^^ 

7 ^^^^^^^^ 

8 ^^^^^^^^ 

En la figura, se pueden apreciar 80 bandejas dispuestas regularmente 
('ringlas') que pueden servirnos para simbolizar claramente lo que veriamos 
si pudieramos examinar simultaneamente 80 puntos biestables. Pero mejor 
consideremos que examinamos sucesivamente 10 sitios y en cada sitio 
es el examen simultaneamente de 8 puntos de los circuitos internos. Si 
los asignamos a celdillas capaces de contener un bito (un 1 o un 0) 
tendremos un trozo de memoria con 10 BICOS de 8 bitos. 



— Apendice II Pagina 7- 



EN LAS ENTRANAS DE LA MAQUINA 



Pues bien, si continuaras anadiendo renglones horizontales con 8 celdillas 
cada una hasta que llegaras al numero 1.023, tendrias exactamente la 
representacion de IK de memoria, ya que habria 1.024 bitos. 

Y si siguieras hasta llegar al numero 65535, tendrias los 65.536 bicos 
(64 x 1.024) que serian las 64K mencionadas. 

Afortunadamente, los que construyen el interpretador BASIC son los que 
tienen que conocer todas estas cosas para que tu no las necesites, y puedas 
llegar a ser un programador eficiente sin una comprension completa de 
los bitos, los bicos, etc. Aunque una apreciacion de todo lo que significa 
te ayudara enormemente en cuanto comiences a dibujar graficos y avances 
en la ciencia informatica. Por lo tanto, merece la pena emplear algun 
esfuerzo en adquirir esa comprension, y el significado de los diversos 
numeros 256, 1.024, tanto en su notacion decimal como en su notacion 
binaria, y en la que veremos en el siguiente parrafo la notacion 
hexadecimal. 

Sin embargo... simple y elegante como es, la notacion binaria es tediosa 
y propensa a inexactitudes que no pueden ser detectadas con una mirada. 
La notacion binaria tiene asociada intimamente otros sistemas de notacion 
que realmente son los que usan los programadores al tratar de estos temas. 
Se denomina normalmente hexadecimal (y viene de 16), y se abrevia 
normalmente 'hex'. Coincide con el sistema de numeracion con base 16, 
y como 16 = 2 1 * basta separar adecuadamente la notacion binaria en grupos 
de cuatro (cuartetos) y comprobar que a todos los efectos son equivalentes. 
Los 16 'hexitos' (y muchos prefieren llamarlos 'dexitos' para evitar 
interpretar el prefijo hexa como 6, dado que ya existen los hexagonos), 
se simbolizan normalmente por: 

0123456789ABCDEF 
o mas bien 

0123456789AbcdEF 

para aprovechar que asf los puedes representar sin confusion incluso en 
los relojes llamados digitales. 

Con esta notacion, un bico de 8 bitos se convierte en 2 dexitos. Y basta 
multiplicar el equivalente decimal del primer dexito por el numero 16 
y sumarle el equivalente del segundo dexito para obtener el equivalente 
decimal de un bico de 8 bitos. 

En la tabla siguiente, y para resaltarte el hecho de que el y el 1 con 
que simbolizamos habitualmente los BITOS, puedes ser simbolizados con 
cualquier otra cosa, te resumimos todo en la tabla siguiente: 



Apendice II Pagina 8 



EN LAS ENTRANAS DE LA MAQUINA 



Decimal 


Binarii 








1 


1 


2 


10 


3 


11 


4 


100 


5 


101 


6 


110 


7 


111 


8 


1000 


9 


1001 


10 


1010 


11 


1011 


12 


1100 


13 


1101 


14 


1110 





-> 


CPC464 


Hexadecimal 


fl 





-X- 


1 


*fl 


2 


-X--X- 


3 


*flfl 


4 


*fl* 


5 


**fl 


6 


*** 


7 


*flflfl 


8 


*flfl* 


9 


*fl*fl 


A 


*fl** 


B 


**flfl 


C 


**fj* 


D 


***f] 


E 


-X-*** 


F 


*flflflfl 


10 



15 1111 

16 10000 

A traves de toda esta guia, designamos los numeros hexadecimales 
precediendoles del signo &, v.g. &D6; ya que es el simbolo mas 
comunmente usado por los programadores cuando estan empleando tecnicas 
de lenguaje maquina. Aunque todavia prefieren los lenguajes ensambladores 
que es todavia otra forma mas nemotecnica de representar ya no solo 
datos numericos y literales a usar en el programa, sino tambien las claves 
o codigos de las operaciones que el microprocesador tiene que efectuar. 

Si lo que quieres es hallar el equivalente hexadecimal de un numero decimal 
simplemente tienen que efectuar la division entera, tomando el numero 
decimal como dividendo y 16 como divisor. El cociente resultante sera 
un numero menor que 16, que constituye el primer dexito del equivalente, 
y el resto que tambien sera menor que 16, constituye el segundo dexito 
del equivalente. Prueba con el decimal 214, y veras que el cociente es 
13 y el resto 6; que en notacion hexadecimal, 13 es la D y 6 tambien 
se simboliza con 6. Y que por tanto, el equivalente es &D6. (Y no te 
dejes llevar de la tentacion, y considerar &D6 como 13+6 6 136; ahora 
ya sabes que es 13x16+6=214). 

Es el mismo proceso cuando lees un numero decimal (y hay mucha gente 
que prefiere decir un numero denario, para evitarse problemas con la 
parte fraccionaria (decimal) de un numero), tal como 89 que en realidad 
es 8x10+9. Simplemente sucede que multiplicar por 10 nos es mucho mas 
simple que multiplicar por 16. 

Si has llegado hasta aqui' sin que se te haya armado un lib, estas bien 
dispuesto para comenzar el camino de la informatica. Puede que incluso 
te preguntes de que va todo esto, y que no es necesario. Un ordenador 
es un aparato que maneja conceptos e ideas muy simples: y simplemente 
ocurre que efectua esas tareas a una gran velocidad (millones de veces 



•Apendice II Pagina 9- 



EN LAS ENTRANAS DE LA MAQUINA 



por segundo) y con una enorme capacidad para almacenar y recordar 
todos los datos que le has impuesto, y los resultados intermedios de los 
muchos millares de simples sumas y 'pases' de un circuito a otro para 
conseguir un resultado. 

Si quieres proseguir estudiando, hay realmente millares de libros disponibles 
sobre el tema, algunos tenderan a dejarte mas confuso de lo que estabas 
antes de comenzar a leerlos; y unos pocos, realmente te guiaran durante 
el camino, desvelandote la sencillez de las relaciones fundamentals que 
existen entre los sistemas de numeracion y la manera en que el ordenador 
los maneja. 




Y no se nos olvida que tambien trabaja con datos literales, pero 
sencillamente lo hace 'al pie de la letra', usando el convenio internacional 
ASCII. Basta que apliques lo anterior a la sarta de unos y ceros con que 
empezamos para que te sea facil convertirla usando la notacion 
hexadecimal en esta otra: 

4A 75 6C 69 6F 

Y luego consultar la tabla de codigos ASCII para poder descifrarla y ver 
que dice simplemente: 

3 u 1 i o 



Apendice II Pagina 10 



Codigos ASCII y caracteres CPC464 



Apendice III: 



Los caracteres ASCII y 

los caracteres graficos del CPC464 



m. 1 Ascn 



Para referenda, reproducimos aqui' el repertorio de caracteres standard 
ASCII usando las notaciones decimal, octal y hexadecimal, juntamente 
con el caracter 'visivo' o de control que le corresponde. Asimismo, la 
composicion grafica de los caracteres usados en el CPC464 se muestran 
a continuacion. 



DEC OCTAL HEX 


ASCII characters 


DEC OCTAL HEX 


ASCII 


DEC 


OCTAL HEX 


ASCII 





000 


00 


NUL <[CTRL]A) 


50 


062 


32 


2 


100 


144 


64 


d 


1 


001 


01 


SOH ([CTRLJB) 


51 


063 


33 


3 


101 


145 


65 


e 


2 


002 


02 


STX([CTRL)C) 


52 


064 


34 


4 


102 


146 


66 


f 


3 


003 


03 


ETX ([CTRLJC) 


53 


065 


35 


5 


103 


147 


67 


9 


4 


004 


04 


EOTflCTRLJD) 


54 


066 


36 


6 


104 


150 


68 


h 


5 


005 


05 


ENQ([CTRL]E) 


55 


067 


37 


7 


105 


151 


69 


i 


6 


006 


06 


ACK ([CTRL]F) 


56 


070 


38 


8 


106 


152 


6A 


J 


7 


007 


07 


BEL ([CTRL]G) 


57 


071 


39 


9 


107 


153 


66 


k 


B 


010 


08 


BS ([CTRLJH) 


58 


072 


3A 


: 


108 


154 


6C 


I 


9 


011 


09 


HT([CTRL]I) 


59 


073 


3B 


/ 


109 


155 


6D 


m 


10 


012 


OA 


LF ([CTRLJJ) 


60 


074 


3C 


< 


110 


156 


6E 


n 


11 


013 


OB 


VT([CTRL]K) 


61 


075 


3D 


= 


111 


157 


6F 





12 


014 


OC 


FF «CTRL]L) 


62 


076 


3E 


> 


112 


160 


70 


P 


13 


015 


OD 


CR ([CTRLJM) 


63 


077 


3F 





113 


161 


71 


q 


14 


016 


OE 


SO ([CTRL]N) 


64 


100 


40 


<§> 


114 


162 


72 


r 


15 


017 


OF 


SI (|CTRL]0) 


65 


101 


41 


A 


115 


163 


73 


s 


16 


020 


10 


OLE (ICTRL]P) 


66 


102 


42 


B 


116 


164 


74 


t 


17 


021 


11 


DC1 ([CTRL]Q) 


67 


103 


43 


C 


117 


165 


75 


u 


18 


022 


12 


DC2 ([CTRLJR) 


68 


104 


44 


D 


118 


166 


76 


V 


19 


023 


13 


DC3 flCTRUS) 


69 


105 


45 


E 


119 


167 


77 


u 


20 


024 


14 


DC4 ([CTRL]T) 


70 


106 


46 


F 


120 


170 


78 


X 


21 


025 


15 


NAK ((CTRL]U) 


71 


107 


47 


G 


121 


171 


79 


y 


22 


026 


16 


SYN (|CTRL]V) 


72 


110 


48 


H 


122 


172 


7A 


z 


23 


027 


17 


ETB ([CTRL]W) 


73 


111 


49 


I 


123 


173 


7B 


{ 


24 


030 


18 


CAN ([CTRLJX) 


74 


112 


4A 


J 


124 


174 


7C 


I 


25 


031 


19 


EM ([CTRL]Y) 


75 


113 


4B 


K 


125 


175 


7D 


> 


26 


032 


1A 


SUB ([CTRLJZ) 


76 


114 


4C 


L 


126 


176 


7E 




27 


033 


1B 


ESC 


77 


115 


40 


M 










28 


034 


1C 


FS 


78 


116 


4E 


N 










29 


035 


1D 


GS 


79 


117 


4F 













30 


036 


1E 


RS 


80 


120 


50 


P 










31 


037 


1F 


US 


81 


121 


51 


Q 










32 


040 


20 


SP 


82 


122 


52 


R 










33 


041 


21 


i 


83 


123 


53 


S 










34 


042 


22 


" 


84 


124 


54 


T 










35 


043 


23 


# 


85 


125 


55 


U 










36 


044 


24 


$ 


86 


126 


56 


V 










37 


045 


25 


X 


87 


127 


57 


U 










38 


046 


26 


& 


88 


130 


58 


X 










39 


047 


27 


1 


89 


131 


59 


Y 










40 


050 


28 


( 


90 


132 


5A 


Z 










41 


051 


29 


) 


91 


133 


5B 


C 










42 


052 


2A 


* 


92 


134 


5C 


\ 










43 


053 


2B 


+ 


93 


135 


5D 


] 










44 


054 


2C 


/ 


94 


136 


5E 


T 










45 


055 


2D 




95 


137 


5F 


- 










46 


056 


2E 


. 


96 


140 


60 












47 


057 


2F 


/ 


97 


141 


61 


a 










48 


060 


30 





98 


142 


62 


b 










49 


061 


31 


1 


99 


143 


63 


c 











-Apendice III Pagina 1- 



Codigos ASCII y caracteres CPC464 



III. 2 Repertorio de caracteres especffico de la maquina CPC464 



Los caracteres reproducidos aqui', estan mostrados 
usando una retfcula de 8x8, que es la que se emplea 
para exponer los caracteres en la pantalla del 
CPC464. Los caracteres definidos por el usuario 
pueden ser agrupados y colocados unos contiguos 
con otros para lograr figuras especiales. (Vease 
el comando SYMBOL en el capitulo 8). 




33 

&H21 
&X001 00001 




34 

&H22 

&X001 00010 




35 

&H23 
&X001 00011 



32 8.H2C 
&X001 00000 




36 

&H24 

&X00100100 




37 

&H25 

&X00100101 




38 

&H26 

&X00100110 




39 

&H27 

&X00100111 



Si 



40 

&H28 

&X00101000 



■ 



41 

&H29 

&X00101001 



1 ■■■! 

TSBL 




42 

&H2A 

&X00101010 



3 



SP 



43 

&H2B 

&X00101011 



aa 



44 

&H2C 

&X00101100 



ffl 



45 

&H2D 

&X00101101 

-Apendice III Pagina 2- 



46 

&H2E 

&X00101110 




47 

&H2F 
&X001 01111 




48 

&H30 

&X001 10000 



Codigos ASCII y caracteres CPC464 




49 

&H31 

&X001 10001 




50 

&H32 

&X001 10010 




BH 





51 

&H33 

&X001 10011 



52 

&H34 

&X00110100 




53 

&H35 

&X00110101 




54 

&H36 

&X00110110 





55 

&H37 

&X00110111 



56 

&H38 
&X001 11000 




57 

&H39 
&X001 11001 




58 

&H3A 
&X001 11010 



■ ■ 



59 

&H3B 

&X00111011 



60 

&H3C 

&X00111100 




61 

&H3D 

&X00111101 




g§ 



62 

&H3E 

&X00111110 





63 

&H3F 
&X001 11111 



64 

&H40 
&X01 000000 




65 

&H41 
&X01 000001 




66 

&H42 
&X01 000010 





67 

&H43 
&X01 000011 



68 

&H44 

&X01000100 
-Apendice III Pagina 3- 



Codigos ASCII y caracteres CPC464 




69 

&H45 

&X01000101 




70 

&H46 

&X01000110 




71 

&H47 

&X01000111 




72 

&H48 

&X01001000 



I 



^WWffl 



73 

&H49 

&X01001001 




74 

&H4A 

&X01001010 




75 

&H4B 

&X01001011 




76 

&H4C 

&X01001100 




77 

&H4D 

&X01001101 




78 

&H4E 

&X01001110 




79 

&H4F 
&X01 001111 




80 

&H50 

&X01010000 




81 

&H51 

&X01010001 




82 

&H52 

&X01010010 




83 

&H53 

&X01010011 




84 

&H54 

&X01010100 




85 

&H55 

&X01010101 




86 

&H56 

&X01010110 




87 

&H57 

&X01010111 




88 

&H58 

&X01011000 



Ap>endice III Pagina 4- 



Codigos ASCII y caracteres CPC464 





Wf:: :::#£: 

ABBE: :""i 



89 

&H59 

&X01011001 



90 

&H5A 

&X01011010 



91 

&H5B 

&X01011011 



92 

&H5C 

&X01011100 








93 

&H5D 

&X01011101 



94 

&H5E 

&X01011110 



95 

&H5F 

&X01011111 



FFFffl 

JUHI 

i rmn m i 





96 

&H60 

&X01 100000 



jFrBS 




mn nrr 



97 

&H61 

4X01100001 



98 

&H62 

&X01 100010 



99 

&H63 
&X01 100011 



100 

&H64 

&X01100100 



mi l mi 







101 

&H65 

&X01100101 



102 

&H66 

&X01100110 



103 

&H67 

&X01100111 



104 

&H68 

&X01101000 



rrjMm p 

:±BH"i: jJS+S 
--flfflflxl ll"""3 






105 

&H69 

&X01101001 



106 

&H6A 

&X01101010 



107 108 

&H6B &H6C 

4X01101011 4X01101100 



■Apendice III Pagina 5 — ' 



Codigos ASCII y caracteres CPC464 




109 

&H6D 

&X01101101 




110 

&H6E 

&X01101110 





111 

&H6F 

&X01101111 



112 

&H70 

&X01110000 



R 



P 

Lain 

E3j 



113 
&H71 
&X01 110001 



Hi 

Inflnfl I I I 



114 
&H72 
&X01 110010 



i rrrm \ 



ESS 



fffft ff- 

1 1 1 mn i 



115 

&H73 

&X01110011 



116 

&H74 

&X01110100 




117 
&H75 
&X01 110101 




118 

&H76 

&X01110110 



ra is 



y-F.: 1 



111111 

119 

&H77 

&X01110111 



120 

&H78 

&X01111000 



B 







121 

&H79 

&X01111001 






122 

&H7A 

&X01111010 



123 

&H7B 

4X01111011 



124 
&H7C 
&X011 11100 





125 126 
&H7D &H7E 
&X01111101 &X01111110 
■ Apendice III Pagina 6 



127 

&H7F 

&X01111111 



128 

&H80 

&X1 0000000 



Codigos ASCII y caracteres CPC464 



wm 



129 

&H81 

&X1 0000001 




130 

&H82 

&X1 0000010 




131 

&H83 

&X1 0000011 




132 

&H84 

&X1 00001 00 




133 

&H85 

&X1 00001 01 




134 

&H86 

&X1 00001 10 




135 

&H87 

&X1 00001 11 



_::::q 


3 


:: J 


i 


_ ■■■■ 


■■■■ 

:_: ■■■■ 


■■■a 



136 

&H88 

&X1 0001 000 




137 

&H89 

&X1 0001 001 



138 

&H8A 

&X1 0001 010 



■■■■■■■I 
■■■■■■■I 

■■I IBB 
JUUIBBBB 

E::::B 

ffilB 



139 

&H8B 

&X10001011 



BBBBBBBI 
BBBBBBBI 

BBBBBBI 

■■■■■■■■ 



140 

&H8C 

&X1 0001 100 



■■■___ 
BBE__ 

bb9i__ 

BBBTTT 

BBBBBB 
BBBBBB 
BBBBBB 

BBBBBB 



141 

&H8D 

&X1 0001 101 



BBBI 
BBBI 



142 

&H8E 

&X10001110 



—■—P 



143 

&H8F 

&X10001111 



n 



144 

&H90 

&X1 001 0000 




145 

&H91 

&X10010001 




146 

&H92 

&X1 001 0010 




147 

&H93 

&X1 001 0011 



E 



148 

&H94 

&X10010100 



■Apendice III Pagina 7- 



Codigos ASCII y caracteres CPC464 



■ 
■ 
■ 
■ 
■ 
■ 
■ 
1 



149 

&H95 

&X10010101 




150 

&H96 

&X10010110 




151 

&H97 

&X10010111 



■ 



152 

&H98 

&X1 001 1000 




153 

&H99 

&X1 001 1001 



mw 



154 

&H9A 

&X1 001 1010 




155 

&H9B 

&X1 001 1011 



■■■■^::_ 



156 

&H9C 

&X10011100 




157 

&H9D 

&X10011101 




158 

&H9E 

&X10011110 




159 

&H9F 

&X10011111 



wm 



160 

&HA0 

&X1 01 00000 



Era 



161 

&HA1 

&X1 01 00001 




L 



"flpyffi 












162 

&HA2 

&X1 01 00010 





165 166 
&HA5 &HA6 
&X10100101 &X10100110 
Apendice III Pagina 8 




163 

&HA3 

&X1 01 00011 



m 



167 

&HA7 

&X10100111 



11 



164 

&HA4 

&X10100100 



M 



168 

&HA8 

&X10101000 



Codigos ASCII y caracteres CPC464 




169 

&HA9 

&X10101001 



m 



170 

&HAA 

&X10101010 




171 

&HAB 

&X10101011 




172 

&HAC 

&X10101100 



m 



173 

&HAD 

&X10101101 




174 

&HAE 

&X10101110 




175 

&HAF 

&X10101111 




176 

&HB0 

&X1 01 10000 




177 

&HB1 

&X1 01 10001 




178 

&HB2 

&X1 01 10010 




179 

&HB3 

&X10110011 




180 

&HB4 

&X10110100 




181 

&HB5 

&X10110101 



M 



182 

&HB6 

&X10110110 




183 

&HB7 

&X10110111 




184 
&HB8 
&X101 11000 




185 
&HB9 
&X101 11001 




186 

&HBA 

&X10111010 




187 

&HBB 

&X10111011 




188 

&HBC 

&X10111100 

-Apendice III Pagina 9- 



Codigos ASCII y caracteres CPC464 



sS! 



189 

&HBD 

&X10111101 




193 

&HC1 

&X1 1000001 




197 

&HC5 

&X1 10001 01 




201 

&HC9 

&X1 1001 001 



ffl 




J I II II 

■Bop 

■SITU" 

nPA 




190 

&HBE 

&X10111110 



191 

&HBF 

&X10111111 



192 

&HC0 

&X1 1000000 




EEfii 



ESS 




194 

&HC2 

&X1 1000010 




195 

&HC3 

&X1 1000011 



|gg| 



196 

&HC4 

&X1 10001 00 



S 








fffflm feraa3 



198 

&HC6 

&X1 10001 10 



fflffl 



199 

&HC7 

&X1 10001 11 



200 

&HC8 

&X1 1001 000 




nmii 

■ikcm 

■■Hh-Tmi 




202 

&HCA 

&X1 1001 010 



203 

&HCB 

&X1 1001 011 



204 

&HCC 

&X1 1001 100 





205 206 

&HCD &HCE 

&X11001101 &X11001110 

^ — Apendice III Pagina 10 



207 

&HCF 

&X11001111 



208 

&HD0 

&X1 101 0000 



Codigos ASCII y caracteres CPC464 



209 

&HD1 

&X1 101 0001 



210 

&HD2 

&X11010010 



211 

&HD3 

&X1 101 0011 




212 

&HD4 

&X11010100 



£! 



213 

&HD5 

&X11010101 



_ZTU 
~IIJ ■■ 

I_J ■■■ 
_J ■■■■ 
J ■■■■■ 



214 

&HD6 

&X11010110 



215 

&HD7 

&X11010111 




216 

&HD8 

&X1 101 1000 



N 



217 

&HD9 

&X1 101 1001 



218 

&HDA 

&X11011010 




219 

&HDB 

&X11011011 




220 

&HDC 

&X11011100 




221 

&HDD 

&X11011101 




222 

&HDE 

&X11011110 




223 

&HDF 

&X11011111 




224 

&HE0 

&X1 11 00000 



("■■■■■■T 

wmm 



!H 



225 

&HE1 

&X1 11 00001 



psssa 




226 

&HE2 

&X1 1100010 




r«BT« 

■■■■■■ 
■■■■■■ 
_■■■■! 

■■!_ 



227 228 
&HE3 &HE4 
&X11100011 &X11100100 
Apendice III Pagina 11 • 



Codigos ASCII y caracteres CPC464 






229 

&HE5 

&X11100101 



230 

&HE6 

&X11100110 



231 

&HE7 

&X1 11001 11 




232 

&HE8 

&X11101000 





rSaRp; 




233 

&HE9 

&X11101001 



I ■■■! 
■■■■I 




234 

&HEA 

&X11101010 



H 



235 

&HEB 

&X11101011 




■■■ 
■■■ 
■■■ 

r V 



237 

&HED 

&X11101101 



238 

&HEE 

&X11101110 



239 

&HEF 

&X11101111 



jrmm 




236 

&HEC 

&X11101100 



+'■■■ 




240 

&HF0 

&X1 11 10000 



m 



Mm 

■■■■■■■■ iiiuiii 




241 

&HF1 

&X1 11 10001 



242 

&HF2 

&X1 11 10010 



243 

&HF3 

&X1 11 10011 



3 



244 

&HF4 

&X11110100 




muw 



Ml 



m 




245 246 
&HF5 &HF6 
&X11110101 &X11110110 
■ Apendice HI Pagina 1 2 



247 

&HF7 

&X11110111 



248 

&HF8 

&X11111000 



Codigos ASCII y caracteres CPC464 




249 
&HF9 
&X111 11001 





*a 



n 




250 

&HFA 

&X11111010 



251 

&HFB 

&X11111011 



252 

&HFC 

&X11111100 




253 

&HFD 

&X11111101 



jSBi 

M 



!■■■■ 




254 

&HFE 

&X11111110 



PbBi ■■ 



s a g: 



255 

&HFF 

&X11111111 



-Apendice III Pagina 13- 



Codigos ASCII y caracteres CPC464 



Valores ASCII prescritos como standard 



3 
3 
3 
3 
3 
3 
3 
3 
3 
13 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 



3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 
3 



5I£ SSS 


00010 
0000 

0000, 












• 

§ 

LD 
"3" 

LJ 
P- 
C_J 

cr 

D 

a. 
O 

o 

< 

z 
o 

(/) 
cr 

a 
cr 

D 

o 

o 
o 

QC 
CO 


ss 




QO 

ess 

8SS 


3 

ss 

888 

sss 
58 


c 

£ 

sss 

s«s 
c 

5 


sa 



o 

> 

O 



(0(0 
CM » 



* * * 

*- U) l»- 

, t 

LU (0(0(0 
OC o t <0 



CM 

C£ O <* (0 



mm 

CM CO 



4 



CM CM CM 

*■ m r- 



0)0) 

oo 



- t 



o 

i- 
co 

> 

O 



UJ 



<< 



= mm 



mm 
o o 



CM 

ui 

E 



<< 
OO 



CO CO 

m m 



I 



CO CO 

o o 



L 



Apendice III Pagina 14- 



Codigos ASCII y caracteres CPC464 



m 

BEB 

m 















|s==| 


535 




555 




SSS 














Isssl 


ass 




SS8 




ass 










Is a si 


asa 




SSR 




SSS 











"3- 

CD 

LJ 
PU 
LJ 



<o 




>^ 



CD <L> 



r; to 



u o <« u i* 



CCJ 

O 



c 
fd 



«* o 



to CO > 



Q 

o 
of 

N 

in 
in 

OT-oim^wtor^coguiQor 

C*> CO fOMWrOWMnMNOlfl 



0) 

T5|o»-oicjnin<oi^coo> .JJ"= 

>l C "" 

0) 



oioicooococowmcocomm^ 



Apendice III Pagina 15- 



Codigos ASCII y caracteres CPC464 



Codigos de entrada para teclas y joysticks 



E 



USE 



00 



I 



000 
0000 



o 
Lfci 



ro in 



















00 




oo 














PI 


1 nsl 






* — 










1 *-' 


00 


00 


00 
















00 

oo 










v0 

oo 














o 












in 

oo 










00 




















ro 


00 


























vT 






























rv- 






h0 














00 










o 

-J- 










in 
-4- 






vt 














sO 

•J- 


vt 












v* 














va- 
in 


oo 

>*• 
















00 

in 










m 










in 
in 


o^ 
















in 










O 
in 










00 


in 








>o 


O 




00 
































o 
>o 


















in 




N- 














































T— 

00 




vl- 


















o 

o- 








00 






f5" 























o 

i- 
co 

> 

O 



> 

O 



in 



t 



*- if) 

CM CN 



£ | 



O 

ir> 







-Apendice III Pagina 16- 



GENERALIDADES PARA EXPERTOS 



Apendice IV: 



Introduction al CPC464 para expertos 

El CPC464 es un ordenador personal a color de bajo coste, con una 
generosa, eficaz, y profunda implementacion de tecnologfas establecidas 
presentado en estilo disenado para ofrecer un valor excepcionalmente 
atractivo para el coste, acoplado con una capacidad sustancial para 
expansion, y ser asf atractivo a ambos, el principiante y el experto. 

El hardware y el software ROM ha sido disenado para proveer a los 
programadores principiantes y experimentados un entorno amistoso, en 
el que el software existente pueda ser adaptado a medida, y se pueda 
escribir nuevo software para sacar ventaja de las muchas facetas 
soportadas por el CPC464. 



Las caracterfsticas primordiales del sistema son: 

Z80CPU 

El microprocesador mas ampliamente usado en los ordenadores personales 
a lo ancho del mundo, y con el mejor software de base -especialmente 
porque el CPC464 ofrece el potencial para la implementacion del CP/M. 
La estructura unica del manejo de interrupciones, ha facultado al CPC464 
para innovar el BASIC con posibilidades AFTER y EVERY, y otras 
facilidades de tiempo real que controla el sonido y los temporizadores. 



64K RAM 

Se suministra como standard una cantidad generosa de RAM, con mas 

de 42K disponibles realmente para el usuario, gracias a la implementacion 

en ROM de tecnicas de solape al implementar el BASIC/ 



Pantalla 

El CPC464 admite tres modos basicos de manejo en pantalla, incluyendo 
textos de 80 columnas, un surtido de 27 colores y resolucion de hasta 
640x200 pixels. 

Teclado Real 

Un teclado de estilo mecanografico, con un racimo de teclas para cursor 
y un tablero standard separado para entrada numerica, que dobla el uso 
para propositos de teclas funcionales. 

Apendice IV Pagina 1 — ' 



GENERALIDADES PARA EXPERTOS 



Cassette incorporado 

El almacenamiento en la cassette local se dispone como una posibilidad 
incorporada, permitiendo la operacion con ninguna complicacion adicional 
para el usuario con enganche, fijacion de nivel, etc. Escribiendo a bien 
lKbaudios o 2Kbaudios (seleccionable por software) con velocidades de 
lectura automaticamente establecidas por hardware. 

BASIC 

Un BASIC standard en la industria escrito en Inglaterra, mas rapido y 
mas versatil de lo que se pudiera esperar de tales BASIC, con muchas 
ampliaciones para graficos y sonido, mas un extenso soporte en firmware. 

Repertorio de caracteres extendido 

Un repertorio completo de caracteres de 8 bits, incluyendo si'mbolos y 
graficos es accesible en su mayoria via el teclado, y usando las funciones 
CHR$(n). 

Tiempo transcurrido 

Las interrupciones se general por el barrido de cuadros suministrando 
las facilidades para el tiempo transcurrido. 

Teclas definidas por el usuario 

Hasta 32 teclas pueden ser definidas por el usuario con sartas de 32 
caracteres. La capacidad de redefinicion incluye parametros de repeticion. 
Un repertorio completo de 255 caracteres (todo el ASCII y mas de 100 
extras), opcionalmente redefinibles por el usuario. 

Subrutinas 

Muchas subrutinas ensambladas estan disponibles para ser citadas desde 
BASIC. 

MODOS DE PANTALLA 

Hay tres modos de operacion en pantalla: 

a) Normal 

Modo 1: 40 columnas x 25 lineas, 4 tintas en texto 

320 x 200 pixels, direccionables individualmente en 4 colores. 

b) Modo multicolor 

20 columnas x 25 lineas, 16 tintas en texto 

160 x 200 pixels, individualmente direccionables en 16 colores 

c) Modo de alta resolucion 

80 columnas x 25 lineas, 2 tintas en texto 

640 x 200 pixels, individualmente direccionables en 2 colores. 



-Apendice IV Pagina 2 



GENERALIDADES PARA EXPERTOS 



Seleccion de color' 



(NB: A traves de esta guia, 'negro' ie. luminancia nula, se considera como 
color para los propositus de las siguientes descripciones). 

El borde puede estipularse a CUALQUIER par de colores sin considerar 
el modo de pantalla: ie. flasheando; o un solo color ie. estacionario. 

El numero de INKS disponibles depende del modo de pantalla elegido. 
Cada INK puede fijarse a un par de colores, ie. flasheando; o un solo 
color ie. estacionario. El numero de tintas usables en cualquier momento 
depende del modo de pantalla previamente definido. El PAPER de texto, 
PEN de texto y PEN de graficos, puede fijarse a una tinta disponible. 

La escritura de texto puede fijarse para que sea traslucida u opaca: ie. 
bien ignorara el color del papel y sobre-escribira los graficos, o 
sobre-escribira completamente el fondo. 



Ventanas 

El usuario puede elegir hasta ocho ventanas de textos en las que se 
escriben caracteres, y tambien una ventana de graficos en la que se 
pueden efectuar 'ploteado'. 

Las ventanas se restauran a lo prescrito cuando se fija el modo de pantalla. 

NB: Si la ventana de texto es equivalente a toda la pantalla (prescrito), 
se logra el despliegue rapido por hardware. Si la ventana de texto es 
menor que la pantalla disponible, el despliegue se consigue por software, 
que es correspondientemente mas lento. 

Cursor 

El cursor esta inhibido durante los periodos en que la CPU no requiere 
entrada por teclado, actuando asf como un prontador automatico. El 
cursor se representa por un cuadrado de color invertido. 

Sonido polifonico 

Las facilidades de sonido del CPC464 estan generadas usando la pastilla 
generadora de sonido standard en la industrial de General Instruments 
familia AY8910. La pastilla opera con tres canales (voces) cada uno de 
los cuales puede ser independientemente fijado en tono y actitud. Se 
puede anadir ruido bianco como se requiera. 

Los tres canales aparecen como izquierda, derecha y centro (usando la 
clavija de extension estereo). El altavoz interno produce una salida 
combinada monoaural. 

El software provee facilidades para el control de envolvente en amplitud 
y tono. La envolvente de amplitud interna de la pastilla generadora de 
sonido no se usa' normalmente. 



-Apendice IV Pagina 3 



GENERALIDADES PARA EXPERTOS 



L 



Portal de impresora 

Esta dotado de un portal de impresora paralelo compatible Centronics 
standard en la industria, usando la senal 'Busy' para efectuar operaciones 
de apreton de manos. 

Apoyo de expansion 

Muchas interfaces hardware estan disponibles via bloques de puentes o 
direccionamiento indirecto para proveer facilidades de expansion de 
software. AMSTRAD presentara, entre otros items, ductoras de disco, 
interfaces series con ductora de software en ROM, etc. 

Coordenadas 

El origen de texto es la esquina superior izquierda de la pantalla, y las 
posiciones fisicas en pantalla cambian con el modo de imagen. 

El origen de graficos es la esquina inferior izquierda, y supone que la 
pantalla esta en todo momento en el modo de alta resolucion -aunque 
los calculos de tintas seran efectuados correctamente en todos los modos 
de imagen. 

NB 

En el modo normal de pantalla, cada pixel tiene DOS direcciones 
horizontales, y se puede usar una u otra. En el modo multicolor, cada 
pixel tiene CUATRO direcciones horizontales, y cualquiera de las cuatro 
puede usarse para definir la posicion del pixel. 

El eje vertical tiene coordenadas de a 399 que son divididas por dos 
y truncadas para dar la posicion fi'sica en la gama a 199. Eso asegura 
que las relaciones de aspecto esperadas se preservan en pantalla. 

ROMS de expansion 

Todas las ROMS ocupan los 16K de la cima de la memoria (donde reside 
el BASIC) y hay facilidades en el firmware para citar a 240 adicionales, 
16K extra ROMS. Debe emplearse externamente una cierta cantidad 
de circuitos decodificadores de direcciones a la maquina base como parte 
del hardware de expansion ROM). 

Panoramica: 

Un breve resumen de las principales caracterlsticas del hardware y 

firmware del CPC464 

1) Hardware 

1.1) Dentro de la carcasa principal CPC464: 

Computador, teclado, cassette y altavoz. Salidas RGB y luminancia. 

1.1.1) LSI Chips 

Z80A un procesador ejecutando a 4MHz. 

64K bytes de 64K x 1 RAM dinamica refrescada por accesos a la memoria 

de pantalla. 



Apendice IV Pagina 4- 



GENERALIDADES PARA EXPERTOS 



32 K bites de ROM conteniendo BASIC y el sistema operativo (OS). 

Una ringla logica customizada, incorpora casi toda la logica no incluida 
previamente en los chips LSI; particularmente temporizacion, generacion 
de color y circuiteria DMA. 

La pastilla controladora CRT 6845 genera senales de barrido para la RAM 
video. 

NB 

El mapa de memoria es complejo y cambia con el modo de pantalla. El 
CRTC puede usarse para efectuar despliegue (lateralmente para anchura 
de pantalla 1/40) y arrolle (arriba y abajo cada 8 lineas de barrido) si 
el software lo requiere. Los parametros dentro del CRTC seleccionan 
el numero de lineas, la cadencia de cuadro, la anchura y posicion de los 
bordes. 

El chip generador de sonido GI AY-3-8912: 3 boces. El sonido se toma 
de los 3 canales y se mezcla equilibradamente para producir una salida 
mono en el altavoz incorporado, controlado por perilla de volumen. Tambien 
hay una salida externa estereo donde... 

Izquierda=Canal A + 1/2 Canal C. Derecha=Canal B + 1/2 Canal C. 

Este chip tambien recibe informacion del barrido de los portales del teclado 

y joysticks. 

Una pastilla parajelo I/O 8255 interconecta el bus al chip de sonido GI. 
Tambien explora el teclado, portal de joystick, eslabones de opcion y 
controla el cassette. 

1.1.2) Enchufes externos 

Conectores de borde PCB para expansiones de proposito general (12) y 
una impresora externa (12) (paralelo Centronics). Enchufes para joystick 
(14) (9 pines D-Tipo), salida estereo de sonido (15), salida video (10) 
(RGB y sync o video compuesto o luminancia y sync). 

1.2) Fuera de la carcasa 

El sistema CPC464 viene con una eleccion de dos clases de entrada directa 
de monitor de video, incluyendo cada una, una fuente de alimentacion 
5V para el ordenador, disenado para adaptarse a los standards locales 
de voltaje de red en el pais de venta. Ademas, hay una PSU opcional 
y un modulador UHF TV, el MP1. 

Se requeriran cables para conectar una impresora compatible Centronics 
y una unidad Hi-fi. 

1.3) Especificacion de pantalla 

La pantalla opera en 16K de memoria. La maquina tiene un surtido de 
27 colores que pueden ser elegidos libremente para formar una paleta. 
El numero de tintas en la paleta depende del modo de pantalla. Ciertas 
tintas pueden fijarse al mismo color si se requiere. Los pixels de la pantalla 
se definen como motas de una tinta particular. 
— — Apendice IV Pagina 5- 



GENERALIDADES PARA EXPERTOS 



(Nota que el fondo, o papel, requiere una tinta de la paleta disponible). 
Hay un BORDER rodeando el area activa de imagen que puede fijarse 
independientemente a cualquiera de los 27 colores. 



Modo 

Normal 
Alta Res. 
Multicolor 



N5 de tintas Motas verts 



Motas horiz Chars horiz 



4 

1 

16 



200 
200 
200 



320 
640 
160 



40 
80 
20 



NB: El ordenador producira un efecto de escala de grises si se proyecta 
sobre un monitor monocromo. El orden de los colores en brillo creciente 
es como sigue: 

TABLA MAESTRA DE COLORES 



N5 Tinta 


Color Tinta 


N5 Tinta 


Color Tinta 





Negro 


It 


Azul Pastel 


1 


Azul 


15 


Naranja 


2 


Azul Brillante 


16 


Rosa 


3 


Rojo 


17 


Magenta Pastel 


it 


Magenta 


18 


Verde Brillante 


5 


Malva 


19 


Verde Marino 


6 


Rojo Brillante 


20 


Ciano Brillante 


7 


Purpura 


21 


Verde Lima 


8 


Magenta Brillante 


22 


Verde Pastel 


9 


Verde 


23 


Ciano Pastel 


10 


Ciano 


2t 


Amarillo Brillante 


11 


Azul Cielo 


25 


Amarillo Pastel 


12 


Amarillo 


26 


Blanco Brillante 


13 


Blanco 







1.4) Mapa de Memoria 

Los 64K de RAM se reparten como sigue: 

Observa que parte de la ROM solapa la RAM de pantalla, por lo tanto 
liberando el area maxima posible para la RAM de usuario durante las 
operaciones BASIC. 



ROM SECTION < 


OOOOH 

3FFFH 

4000H 
7FFFH 
8000H 
BFFFH 




ROM SECTION 1 < 


C000H 
FFFFH 


> RAM [Screen 3] 



^ — Apendice IV Pagina 6* 



GENERALIDADES PARA EXPERTOS 

Cuando hay ambas, RAM y ROM, en una direccion, entonces READING 
accesa la ROM y WRITING accesa la RAM. Ademas, la seccion ROM 
puede ser desactivada, permitiendo accesar para leer la RAM en la misma 
direccion. 



1.5) Habilidad de ampliacion 

1.5.1) ROMS colaterales 

Esta hecha la provision para que puedan elegirse ROMS adicionales en 
lugar de cualquier parte de la ROM incorporada. El arbitraje de direcciones 
y la logica de seleccion de bancadas estara contenida en un modulo ^ 
conectado al bus de expansion, pero todas las senales requeridas estan 
llevadas al bus de expansion. 

1.5.2) RAM adicional 

Se puede conmutar RAM adicional en cualquier parte de la RAM 
incorporada. El arbitraje de direcciones y la logica de seleccion de 
bancadas estara contenida en un modulo conectado al bus de expansion, 
pero todas las senales requeridas estan traidas al bus de expansion. Esta 
memoria sera solo de lectura y un esquema especial involucrando mapas 
y/o se requerira para escribir en esta rama adicional desde el ordenador. 

1.5.3) I/O Adicional 

La mayoria de las direcciones de portales I/O estan reservadas por el 
ordenador, y en particular las direcciones por debajo 7Fxx no seran usadas 
en absolute Lo siguiente puede ser usado por hardware externo. 

F8xx, F9xx, FAxx, FBxx 

El bus de expansion para perifericos debe decodificar las direcciones 
en AO a A7 mientras que la direccion A10 esta baja. Los canales I/O 
del bus de expansion en la gama de direcciones F800 a FBFF estan 
reservadas como sigue: 



Addresses A0-A7 

00 - 7B "Do not use" 

7C - 7F Reserved for disk interface 

80 - BB "Do not use** 

BC - BF Reserved for future use 

CO - DB "Do not use" 

DC - DF Reserved for communications interfaces 

E0 - FF Available for user peripherals 



Observa que las instrucciones Z80 que colocan el registro B en la parte 
superior del bus de direcciones (A15-A8) debe usarse. 



Apendice IV Pagina 7- 



GENERALIDADES PARA EXPERTOS 



2) Teclado 

Un restaurado completo se opera al pulsar conjuntamente CTRL, SHIFT 
y ESC. Las teclas que provocan caracteres visivos o movimientos de cursor 
repetiran automaticamente bajo control del firmware, excluyendo todas 
las teclas del tablero numerico. 

ESC suspende la ejecucion del programa. Seguido de otro ESC termina 
la ejecucion. Seguido por cualquier otro caracter, reanuda la ejecucion 
del programa. 

CAPS LOCK es un basculador, operado por la tecla de enclavamiento 
de mayusculas. El enclavamiento del turno mayusculas/minusculas es 
un basculador operado por CTRL, CAPS LOCK pulsadas conjuntamente. 

El cursor de copia se separa del cursor de entrada, operando SHIFT junto 
con las teclas de cursor. La entrada en el buzon puede conseguirse para 
el caracter debajo del cursor de copia, pulsando la tecla COPY. 

Las teclas de cursor estan pensadas para permitir la edicion del buzon 
de entrada, que puede ocupar unas cuantas lineas de pantalla. Las teclas 
de cursor pueden usarse para colocar el comienzo de la imposicion por 
teclado en cualquier posicion de pantalla anterior a cualquier ingreso 
por teclado que se este recibiendo. Una vez que se ha recibido cualquier 
ingreso por teclado se prefija la posicion de pantalla. El nuevo texto 
ingresado sobreescribira cualquier contenido existente en la pantalla en 
esa posicion. 

DEL es supresion retrocediendo y CLR es supresion avanzando. 



•Apendice IV Pagina &- 



INTERCONEXIONES DE USUARIO 



Apendice V: 



Conexion del panel posterior al CPC464 




5VDC 



MONITOR 



PADDLE PORT CONNECTOR (9 PIN D) 
VIEWED FROM REAR 











PIN 1 


UP 


PIN 6 


FIRE 2 


PIN 2 


DOWN 


PIN 7 


FIRE 1 


PIN 3 


LEFT 


PIN 8 


COMMON 


PIN 4 


RIGHT 


PIN 9 


COM 2 


PIN 5 


SPARE 







VIDEO OUTPUT CONNECTOR (6 PIN DIN) 
VIEWED FROM REAR 




PIN 


1 


RED 


PIN 


4 


SYNC 


PIN 


2 


GREEN 


PIN 


5 


GND 


PIN 


3 


BLUE 


PIN 


6 


LUM 



Apendice V Pagina 1- 



INTERCONEXIONES DE USUARIO 



EXPANSION PORT 50 WAY 0.1 EDGE CONNECTOR 

VIEWED FROM REAR 

49 47 45 43 41 39 37 35 33 31 29 27 25 23 21 19 17 15 13 11 9 7 5 3 1 

50 48 46 44 42 40 38 36 34 32 30 28 26 24 22 20 18 16 14 12 10 8 6 4 2 



PIN 


1 


SOUND 


PIN 18 


A0 


PIN 35 


INT 


PIN 


2 


GND 


PIN 19 


D7 


PIN 36 


NMI 


PIN 


3 


A15 


PIN 20 


D6 


PIN 37 


BUSRD 


PIN 


4 


A14 


PIN 21 


D5 


PIN 38 


BUSAK 


PIN 


5 


A13 


PIN 22 


D4 


PIN 39 


READY 


PIN 


6 


A12 


PIN 23 


D3 


PIN 40 


BUS RESET 


PIN 


/ 


A11 


PIN 24 


D2 


PIN 41 


RESET 


PIN 


8 


A10 


PIN 25 


D1 


PIN 42 


ROMEN 


PIN 


9 


A9 


PIN 26 


DO 


PIN 43 


ROMDIS 


PIN 


10 


A8 


p:n 27 


-i 5v 


PIN 44 


RAMRD 


PIN 


11 


A7 


PIN 28 


MREQ 


PIN 45 


RAMDIS 


PIN 


12 


A6 


PIN 29 


M1 


PIN 46 


CURSOR 


PIN 


13 


A5 


PIN 30 


RFSH 


PIN 47 


L. PEN 


PIN 


14 


A4 


PIN 31 


IORQ 


PIN 48 


EXP 


PIN 


15 


A3 


PIN 32 


RD 


PIN 49 


GND 


PIN 


16 


A2 


PIN 33 


WR 


PIN 50 




PIN 


17 


A1 


PIN 34 


HALT 







PRINTER PORT 34 WAY 0.1 EDGE CONNECTOR 

VIEWED FROM REAR 

17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 



^e: 



35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 



PIN 1 




PIN 19 


GND 


STROBE 


PIN 2 


DO 


PIN 20 


GND 


PIN 3 


D1 


PIN 21 


GND 


PIN 4 


D2 


PIN 22 


GND 


PIN 5 


D3 


PIN 23 


GND 


PIN 6 


D4 


PIN 24 


GND 


PIN 7 


D5 


PIN 25 


GND 


PIN 8 


D6 


PIN 26 


GND 


PIN 9 


D7 


PIN 27 


GND 


PIN 11 


BUSY 


PIN 28 


GND 


PIN 14 


GND 


PIN 33 


GND 


PIN 16 


GND 


All other 


pins NC 



Apendice V Pagina 2- 



INTERCONEXIONES DE USUARiO 



GATE ARRAY 



SYNC 



+ 5 
<680 



220 
■VvW- 



+ 5 
<680 



+ 5 
<680 



220 
-VWW 



220 



+ 5 



3k3 . 



10k 



Ik 



SOUND 
GENERATOR 



\Sy—w^- 



.680 



220 



S220 

'o 



1* RED 



GREEN 



J BLUE 



LUM 



-0 SYNC 



5 
° GND 



SOUND TO INTERNAL 
"*" AMPLIFIER & SPEAKER 



> 10K > 10K > 



SOUND 
TO EXP 



•m 



10K > > 22K > > 10K 



STEREO 
SOUND 



CONNECTOR ^ GND 

(stereo jack) 



VIDEO 
OUTPUT 
CONNECTOR 
(6PIN DIN) 



Apendice V Pagina 



PLANTILLAS 



Apendice VI: 



Reticula de TEXTO y VENTANA 
MODO 20 columnas 




-Apendice VI Pagina 1- 



PLANTILLAS 



Reticula de TEXTO y VENTANA 
MODO 1 40 columnas 



s 




















































01 




















































s 




















































R 




















































" 








































































































S 




















































a 




















































n 




















































" 




















































s 




















































a 




















































* i 




















































~ 




















































~ 




















































~ 




















































t 




















































f! 




















































H 




















































K 




















































? 




















































2 




















































ss 




















































t 




















































(0 









































































































* 
















































































































































































































3 

















































































































































































































9 




























































































































































































































































































































Apendice VI Pagina 2- 



PLANTILLAS 



Reticula de TEXTO y VENTANA 
MODO 2 80 columnas 






s 








































































































* 








































































































r~ 








































































































fi 








































































































M 








































































































pi 








































































































* 








































































































S 








































































































<i 








































































































(O 








































































































a 








































































































Si 








































































































K 








































































































3 








































































































W 








































































































i* 








































































































* 








































































































IO 








































































































* 








































































































3 








































































































3 








































































































8 








































































































S 








































































































S 








































































































m 








































































































° 








































































































8 








































































































V 








































































































S 








































































































N 








































































































8 








































































































» 








































































































(O 








































































































* 








































































































™ 








































































































o 








































































































» 








































































































IO 








































































































« 








































































































(N 









































































































n a> o r~ 



■Apendice VI Pagina 



PLANTILLAS MUSICALES 



Apendice VII: 



Notas y Periodos de Tono 



La tabla que sigue da los ajustes recomendados de periodos de tono para 
notas en la escala usual de pentagrama para la gama completa de 8 octavas. 

La frecuencia producida no es exactamente la frecuencia requerida porque 
el ajuste de periodo tiene que ser un entero. El error relativo es el cociente 
de la diferencia entre las frecuencias requerida y real dividido por la 
frecuencia requerida, i.e: (REQUERIDA-ACTUAL)/(REQUERIDA). 



NOTE 


FREQUENCY 


C 


32.703 


c# 


34.648 


D 


36.708 


D# 


38.891 


E 


41.203 


F 


43.654 


F# 


46.249 


G 


48.999 


G# 


51.913 


A 


55.000 


A# 


58.270 


B 


61.735 


NOTE 


FREQUENCY 


C 


65.406 


C# 


69.296 


D 


73.416 


D# 


77.782 


E 


82.407 


F 


87.307 


F# 


92.499 


G 


97.999 


G# 


103.826 


A 


110.000 


A# 


116.541 


B 


123.471 



PERIOD 

3822 
3608 
3405 
3214 
3034 
2863 
2703 
2551 
2408 
2273 
2145 
2025 

PERIOD 

1911 
1804 
1703 
1607 
1517 
1432 
1351 
1276 
1204 
1136 
1073 
1012 



RELATIVE ERROR 

-0.007% 
+0.007% 
-0.007% 
-0.004% 
+0.009% 
-0.016% 
+0.009% 
-0.002% 
+0.005% 
+0.012% 
-0.008% 
+0.011% 

RELATIVE ERROR 



-0.007% 
+0.007% 
+0.022% 
-0.004% 
+0.009% 
+0.019% 
-0.028% 
+0.037% 
+0.005% 
-0.032% 
+0.039% 
-0.038% 



Octave -3 



Octave -2 



-Apendice VII Pagina 1 



PLANTILLAS MUSICALES 



NOTE 


FREQUENCY 


PERIOD 


RELATIVE 


ERROR 


C 


130.813 


956 


+0.046% 




c# 


138.591 


902 


+0.007% 




D 


146.832 


851 


-0.037% 




D# 


155.564 


804 


+0.058% 




E 


164.814 


758 


-0.057% 


Octave -1 


F 


174.614 


716 


+0.019% 


F# 


184.997 


676 


+0.046% 




G 


195.998 


638 


+0.037% 




G# 


207.652 


602 


+0.005% 




A 


220.000 


568 


-0.032% 




A# 


233.082 


536 


-0.055% 




B 


246.942 


506 


-0.038% 




NOTE 


FREQUENCY 


PERIOD 


RELATIVE ERROR 


C 


261.626 


478 


+0.046% 


Middle C 


c# 


277.183 


451 


+0.007% 




D 


293.665 


426 


+0.081% 




D# 


311.127 


402 


+0.058% 




E 


329.628 


379 


-0.057% 


Octave 


F 


349.228 


358 


+0.019% 


F# 


369.994 


338 


+0.046% 




G 


391.995 


319 


+0.037% 




G# 


415.305 


301 


+0.005% 




A 


440.000 


284 


-0.032% 


International A 


A# 


466.164 


268 


-0.055% 




B 


493.883 


253 


-0.038% 




NOTE 


FREQUENCY 


PERIOD 


RELATIVE 


ERROR 


C 


523.251 


239 


+0.046% 




c# 


554.365 


225 


-0.215% 




D 


587.330 


213 


+0.081% 




D# 


622.254 


201 


+0.058% 




E 


659.255 


190 


+0.206% 




F 


698.457 


179 


+0.019% 


Octave 1 


F# 


739.989 


169 


+0.046% 




G 


783.991 


159 


-0.277% 




G# 


830.609 


150 


-0.328% 




A 


880.000 


142 


-0.032% 




A# 


932.328 


134 


-0.055% 




B 


987.767 


127 


+0.356% 





L 



Apendice VII Pagina 2 



PLANTILLAS MUSICALES 



NOTE 


FREQUENCY 


PERIOD 


RELATIVE ERROR 


C 


1046.502 


119 


-0.374% 


c# 


1108.731 


113 


+0.229% 


D 


1174.659 


106 


-0.390% 


D# 


1244.508 


100 


-0.441% 


E 


1318.510 


95 


+0.206% 


F 


1396.913 


89 


-0.543% Octave 2 


F# 


1479.978 


84 


-0.548% 


G 


1567.982 


80 


+0.350% 


G# 


1661.219 


75 


-0.328% 


A 


1760.000 


71 


-0.032% 


A# 


1864.655 


67 


-0.055% 


B 


1975.533 


63 


-0.435% 


NOTE 


FREQUENCY 


PERIOD 


RELATIVE ERROR 


C 


2093.004 


60 


+0.462% 


C# 


2217.461 


56 


-0.662% 


D 


2349.318 


53 


-0.390% 


D# 


2489.016 


50 


-0.441% 


E 


2637.021 


47 


-0.855% 


F 


2793.826 


45 


-Mm °^« 3 


F# 


2959.955 


42 


G 


3135.963 


40 


+0.350% 


G# 


3322.438 


38 


+0.992% 


A 


3520.000 


36 


+1.357% 


A# 


3729.310 


34 


+1.417% 


B 


3951.066 


32 


+1.134% 


NOTE 


FREQUENCY 


PERIOD 


RELATIVE ERROR 


C 


4186.009 


30 


+0.462% 


c# 


4434.922 


28 


-0.662% 


D 


4698.636 


27 


+1.469% 


D# 


4978.032 


25 


-0.441% 


E 


5274.041 


24 


+1.246% 


F 


5587.652 


22 


-1.685% Octave 4 
-0.548% ucrave 4 


F# 


5919.911 


21 


G 


6271.927 


20 


+0.350% 


G# 


6644.875 


19 


+0.992% 


A 


7040.000 


18 


+1.357% 


A# 


7458.621 


17 


+1.417% 


B 


7902.133 


16 


+1.134% 



Estos valores estan todos calculados a partir de la A internacional: 

FREQUENCY = 440* (2 t (0CTAVE+( 10-N) /12) ) 
PERIOD= ROUND(125000/FREQUENCY) 



donde N es 1 para C, 2 para C#, 3 para D, etc. 



-Apendice VII Pagina 3 



PLANTILLA5 MUSICALES 



Retfcula para musica/envolventes 



1 


bbbbbbbbb! 


^^^^^^H 


■ 


■aaa 








aaaa 


: 


aaaaaaaaa aaaaaaaaa 
■aaaaaaaa aaaaaaaaa 


aa 
■ ■ 


■aaa 
■aaa 


laaaSBaaaaBaBaisaaaaaaBaaiaaaaaaa; 


■•■•■■■■•••■••■••2222222222! 




aaaa 
aaaa 






IB 
■ ■ 


■ ■BB 


■aeaiieaeaaBBaaiaaaaaeaai laaaaaeai 


aaaaaaaaaa* aaaaaaaaai 22222! 

•aaaaaaaaaa laaaaaeaai aaaaaa 
•■aaaaaaaaa aaaaaaaaaa aaaaaa 




BBBB 
BBBB 




■aaaaaaaa aaaaaaaaa 










■ ■ 


Baa 


BeaaSaaaaeaeeeeiaeaeseBeeiaeeeaaei 
■BaaiiaaaaaBaaaiaaaaaaBBaiaaaaaaai 


SaaaaaaaBBa aaaaaaaaaa aaaaaai 




BBBB 






■ a 

■ a 


■aaa 
■aaa 


•aeeeeeeaaaeeeaaaeeeeeee* laaasaeei 


a aaaaaaaaaa aaaaaaaaaa aaaaaai 
a aaaaaaaaaa aaaaaaaaaa aaaaa *i 




aaaa 
aaaa 






■ a 


■aaa 


BaaaeBaaaaaaaas aaaaaaaaaa •aaaaBaai 


aaaaaaaaaa* aaaaaaaaaa ••■■■;< 




aaaa 






■ a 

■ a 


aaaa 

IBBfl 


aaaaaaaaaaaaBaaaaaaaaaaaetaaaaaaai 


a aaaaaaaaaa aaaaaaaaai aaaaaai 
a aaaaaaaaaa aaaaaaaaaa aaaaaai 




aaaa 
aaaa 






aa 
aa 


aaaa 
■aaa 


iaaaiSaaaaaaaaaaaaaaaaaaKaaaaaaai 
Saaaitaaaaaaaaaiaaaaaaaai taaaaaaai 


••aaaaaaaaa aaaaaaaaai aaaaaa; 




aaaa 

BBBB 






aa 


aaaa 


aaaaa aaseeeeaaaeeeeseeeee Beeeeeeai 
aaaaaaaaaaaaaaaaa aaaaaaaa •aaaaaaaa 


a aaaaaaaaaa aaaaaaaaaa aaaaaai 
a aaaaaaaaa* aaaaaaaaa* aaaaaai 




aaaa 






aa 
aa 


aaaa 
aaaa 


■aaaa •■•aaaaaaa •••■aaaaaa aaaaaaaai 


•aaaaaaaaai aaaaaaaaaa ■■•aaai 




aaaa 

BBBB 






ii 


aaaa 


aaaaaaaBaaaaaaaaaaaaaaaaaiaaaaaaai 


a aaaaaaaaaa aaaaa aaaaaaaaaaai 




aaaa 






■ a 


aaaa 


aaeaBieeeaieaeiiaeaeeaeea ■eeeeeeei 


a ■••••■•••• aaaaa aaaaa aaaaaai 
a aaaaaaaaaa aaaaaaaaaa aaaaaa 
• •■■•■••■■• laaaaaaaai aaaaaa 

a aaaaaaaaaa aaaaaaaaaa aaaaaa 

a aaaaaaaaaa aaaaaaaaaa aaaaaa 




BBBB 










»>>•>••••••••••"•••••!*•••:::!! 




aaaa 
aaaa 






■ a 


aaaa 








■ a 


aaaa 


eeBBiiaeaaieeeiiesaeiasai leeeeeaai 
aaai! aaaaaaaaaaaaaaaaaaat laaaaaaai 


a aaaaaaaaaa aaaaaaaaaa aaaaaa 
a aaaaaaaaaa aaaaaaaaaa aaaaa a 




aaaa 
aaaa 
aaaa 




■aaaaaaaa aaaaaaaai 


■ a 


aaaa 








■ a 


aaaa 


■aaai aeaaaaaaaa aaaaaaaaa* •aaaaaaa; 


a aaaaaaaaaa aaaaaaaaaa aaaaaa 




aaaa 
aaaa 






■ a 


aaaa 


•••■■■• •••■! 22222222! 


■ ■aaaiiaiai ■■■■■■■■•• ■■■■■■ 




aaaa 






aa 
■ i 


aaaa 
aaaa 


■■■•■■•••■•■•■•••••■••mi aaaaaaaai 

•Mil ■•■■■■■■•■■■■■•■■■•* ■•■■■■■■I 

aaaaasaaaaaaaaaaaaaaaaaai aaaaaaaai 


■aaaaaaaaai aaaaaaaaaa aaaaaa 

a aaaaaaaaaa aaaaaaaaaa aaaaaa 
laaaaBBaaaaaaaBBBBaaaa aaaaaa 




aaaa 
aaaa 






■ ■ 

■ ■ 


aaaa 
■aai 


aaaa! aaeaeaaBBaaaeaseaaei ■■eaaaaai 
eaaaiiase***aaiieeeaeesea aaaaaaaai 


a aaaaaaaaai aaaaa aaaa* aaaaa a 

■a aaaaaaaaaa aaaaaaaaaa aaaaaa 




BBBB 

aaaa 






■ a 

IB 


aaaa 

HBBI 


aaaaaaaaaaaaaaaaaaaaaaaa! laaaaaaai 
aaeaiaaaaaaaaaaaaaaaaaaai aaaaaaaa 


la aaaaaaaaaa aaaaaaaaaa aaaaaa 
la aaaaaaaaaa aaaaaaaaaa aaaaaa 
ii aaaaaaaaai aaaaa aaaaa aaaaaa 




aaaa 
aaaa 






■ a 
aa 
aa 


aaaa 
aaaa 
aaaa 


aaaaaaaaaeeaeeaaaaaaaeaaeiesaaeaai 
■!■■■■■■■■■■••■■■■•■■■■ >■■■■■ 

eaaaa aaaeeaeaee eaaaa aaeai aaaaaaaai 


la aaaaa aaaai aaaaaaaaaa aaaaaa 
■a aaaaaaaaaa aaaaaaaaaa aaaaaa 
(■■■■■■•■■•I ■■■■■■■>■■■■■■■• 




aaaa 
aaaa 








aaaaaaaaa aaaaaaaaa 


■ ■ 


■aai 


■•aaiiaaBaaaaeaiaaaiiaaaiBeiaaaaa; 


ii aaaaa aaaaa aaaaa •■■•• aaaaaa 

ia aaaaa aaaaa aaaaaaaaaa aaaaaa 




BBBB 

aaaa 






aa 


aaaa 


■aaaa aaaaaaaaaaaaaeaaaaai aaaaaaaai 


la aaaaaaaaea aaaaaaaaaa BBBaaa 




aaaa 






aa 


aaaa 


■aaaaaaaaiaaaaiaaaaaaaaaiaaaaiaaai 


ia aaaaa aaaaa aaaaaaaaaa aaaaaa 

IB BBBBB BaBBB BBBBBBBBBB ■■■■•■ 




aaaa 






aa 










aa 


aaaa 
aaaa 


aaaaaaaaaaaaaaaaaaaaaaaa* *aaaaaa«i 

■■■■■ ■■■■■■•■■■ •■■■>■*"■ ■"!!!■!"! 


IB aaaaa aaaaa aaaaaaaaaa aaaaaa 
ia aaaaa aaaaa aaaaeaaaaa aaaaaa 


aaaaaaaai 


aaaa 
aaaa 






BB 
Bfl 


aaaa 
aaaa 


■aaaiiBaaaaaiaiaaaaaaaaaiiaa****;; 


iBBBBBBaaBBBBBBaaaBaaaaaBaBB 
ia aaaaa BBaaa aaaaaaaaaa aaaaaa 
■a •■■■■■■■■• aaaaaaaaaa aaaaaa 
laaaaaaaaaaeiBaaaaaaaeiaaaea 
laiaaaaaaaaa aaaaaaaaaa aaaaaa 
ib aaaaaaaaaa aaaaaaaaaa aaaaaa 




BBBB 
BBBB 

aaaa 
aaaa 
aaaa 
aaaa 






■ ■ 










aa 
aa 


aaaa 
aaaa 


•• ••■■•• 22222222! 






aa 
■ a 


aaaa 
aaaa 


aaaaa aaaaaaaaa* laaaaaaaat aaaaaaaai 










■■■■■■■■•■•■•■■■■■■■•••■■■■■■•■••I 


ii ■■■■■■■■» ■■•■■■■■■■ ■■■■■■ 




aaaa 
aaaa 
aaaa 




aeeeeaeeeeeeejeaeea 


aa 
aa 


aaaa 
aaaa 


aaaaa aaaaaaaaaa aaaaa aaaaa aaaaaaaai 
■•••••aaaaaaaaa •••••aaaai aaaaaaaai 


ia aaaaaaaaaa aaaaaaaaaa aaaaaai 
ia aaaaaaaaai aaaaaaaaaa aaaaaa 






■ a 
aa 


aaaa 
aaaa 


aaaaa aaaaaaaaaa aaaaaaaaai ■•■■•aaa 


laaaaaaaaaaB aaaaaaaaaa aaaaaa 

ia aaaaaaaaaa aaaaaaaaaa laaaaai 
ia aaaaaaBaaa aaaaaaaaaa aaaaaai 
■a aaaaa aaaaa aaaaaaaaaa aaaaaai 
iBaaaaBaaBaaBaaaaBBBBa aaaaaai 




aaaa 
aaaa 
aaaa 






aa 


■aaa 


eaaaiiaaaaaaaaaaaaaaaaaaiiaaaaaaa 




aaaa 




aaaaaaa 
aaaaaaa 
aaaaaaa 




■ i 


■aaa 




ia ••■•■■■■■• aaaaaaaaae aaaaaai 
■a aaaaa aaaaa aaaaaaaaaa aaaaaai 
ia aaaaaaaaai aaaaaaaaaa aaaaaai 
ia aaaaaaaaai aaaaaaaaaa aaaaaai 




aaaa 
aeea 
aaaa 






aa 


aaaa 








aa 
aa 


aaaa 
aaaa 


aaaaa aaaaaaaaaa aaaaa aaaa* aaaaaaaa 


ia aaaaaaaaai •■•••••••• aaaaaai 

ia aaaaaaaaaa aaaaaaaaae aaaaaa 

ia aaaaa aaaaa •■■■■•••■■ aaaaaai 

■a aaaaa aaaaa aaaaaaaaaa aaaaaai 

laaaaBBBaBaaaaaBaaaaaaiBBBaai 
ia aaaaaaaaaa aaaaaaaaaa aaaaa ai 




aaai 

aaaa 
aaaa 
aaaa 
aaa* 






aa 
aa 


aaaa 






■ l 


■aai 














■ a 
aa 


aaaa 
aaaa 




■a aaaaaaaaaa aaaaaaaaaa aaaaaai 
■a aaaaa aaaaa aaaaaaBaaa aaaaaai 




aaaa 
aaaa 






■ 1 


aaaa 




ia eaaaa aaaaa aaaaaaaaaa ■■■•••< 




aaaa 
aaaa 






aa 
ai 


aaaa 
aaai 




■a BBBaaaaaBiaaaaaaaaBB aaaaaai 
■■■■■•••■•■■■■■•■■■■■•••■■■•I 




aaaa 

BBBB 






aa 
aa 


aaaa 
aaaa 




ib aaaaaaaaai laaaaaaaaa aaaaaai 
ii •••aaaaaaa *aaaaaaaai aaaaaai 




BBBB 

■aaa 












■a aaaaaaaaaa aaaaaaaaaa aaaaaai 




aaaa 
aaaa 

BBBB 






aa 


aaaa 










■ a 
aa 
aa 


aaaa 
aaaa 
aaaa 




ib aaaaaaaaaa aaaaaaaaaa aaaaa bi 




aaaa 






ia eaaee eaaaa aeaaaeeaaa eaaaa ai 




BBBB 






■ a 

■ i 

aa 


aaaa 
aaaa 
aaaa 




ia aaaaa aaaai ■•■•aaaaaa laaaaai 
■a aaaaaaaaa* aaaaaaaaaa aaaaaai 

■a eaaaa aaaaa aaaaaaaaaa aaaaaai 




BBBB 
BBBB 

aaaa 
aaaa 
■aaa 

BBBB 

aaaa 
aaaa 
aaaa 
aaaa 
aaaa 






■ i 


■aai 




■• ie*****aa*iaaaaia**i ■•••■• 

■a ■■■•• aaaaa ■•■■■■2222222222 
■••■■■•■••••■■■■■■2222222222 

■aeaaaaeeaaaaaaeeeeeeeaaeaeei 
■a eaaaa eaaaa aaeeeeeeeaaaaeeei 

in •■ !!!'!*!!!' 

ia aaaaa aaaaa ■■■■■■■■■■•22222 






aa 


BBBB 


















aa 
aa 


aaaa 
aaaa 












aa 


aaaa 








aa 


aaaa 




■a aaaaaaaaaa aaaaaaaaaa aaaaaaa 




aaaa 

BBBB 
IBBB 

BBBB 
BBBB 
BBBB 
BBBB 

aaaa 






Bl 


■aai 




laaaaaaaaaaaeaaaaeaaaeaaaeaea 
ia aaaaaaaaae aaaaaaaaaa eaaaaai 
laaBaaaaaaaasaaaaBaaaeeaaaaai 
ia aaaaaaaaaa aaaaa aaaa* **aaaai 

■a aaaaaaaaaa aaaaaaaaae aaaaaaa 
















■ 1 










■ 1 










Bl 


■aai 


■aaaa aaaaaaaaaa aaaaaaaaai aaaaaaaa 






aa 


aaaa 


aaaaa aaaaaaaaaa aaaaaaaaai aaaaaaaa 






BB 


aaaa 


iaaaa aaaaeaaaaa aaaaa aaaaiaaaeaaea 


■a aaaaaaaaae eaaaaaaaaa aaaaaai 




BBBB 
BBBB 




aaaaaaaaa aaaaaaaaa 


aa 


aaaa 


■ aaai aaaaaaaaaa aaaaaaaaai iaaaaaaa 


■a aaaaaaaaaa aaaaaaaaae eaaaaai 
■a aaaaeaaaaa *eaaaaeaaa*aaeae; 




BBBB 

■■■a 






aa 


aaaa 


aaaaaaaaaaaaaaaaaaaaaaaa* •■••• ••• 




aaaaaaaaa aaaaaaaaa 


aa 






■a aaaaaaaaaa eaaaa aaaaa eaaaaei 
■a aaaaaaaaaa *eeeeaeeee eaaaaai 

■a aaaaaaaaaa aaaaaaaaaa aaaaaai 
■a aaaaaaaaai aaaaaaaaaa eaaaaai 
■a leeeeaeeae aaaaaaaaaa eaaaaai 
■a aaaaaaaaaa aaaaaaaaaa aaeaeei 
■a laeeeeeeai aaaaaaaaaa aaaaaai 
■a aaaaaaaaaa aaaaaaaaaa eaaaaai 




BBBB 
BBBB 

aaaa 

BBBB 

aaaa 
aaaa 

■■■a 
aaaa 




aaaaaaa 
aaaaaaa 
aaaaaaa 
aaaaaaa 
aaaaaaa 




aa 
ai 

Bl 
Bl 

ai 
ai 


BBBB 

aaaa 
aaaa 
aaai 
aaai 

aaaa 
aaaa 


•■•ai ••■••■■■■•aaaaaaaaaa aaaaaaaa 

aaaaaaaaaaaaaaaaaaaaaaaa* aaaaaaaa 
aaaaaaaaaaaaaaaaaaaaaaaa* iaaaaaaa 
*•■••••••••■■■• iaaaaaaaSi "222222 

aaaaeaaaaaaaaaaaaaaaaaaaa ••■■■•22 
aaaaa aaaaaaaaaa aaaaa ■■■••••222222 

aaaaa aaaaaaaaaa aaaaaaaaai aaaaaaaa 



m v m fsi 



cm n * \ti is 



■Apendice VII Pagina H 



GLOSARIO 



GLOSARIO DE TERMINOS 



Algunos terminos usados comiinmente en el mundo informatico, 
explicados para los usuarios del CPC464... 

Acoplador Acustic Couper 

Tambien se le llama Modem Acustico, y es un dispositivo electronico en 
el que se puede apoyar el microfono y el audffono del aparato de abonado, 
y que adapta las senales del ordenador a las senales necesarias en la red 
telefonica. De esta forma, el ordenador se pone en comunicacion con 
sistemas de informacion publica (PRESTEL, VIDEOTEXT...) o con otros 
usuarios para intercambiar informacion, programas, etc. 

Acumulador Accumulator 

Un circuito electronico incorporado en el microprocesador, o un lugar 
especi'fico de la memoria, por el que pasa la inmensa mayorfa del trafico 
de datos y operandos, y donde se acumula el resultado de las operaciones 
efectuadas. Se usa constantemente al programar en codigo maquina, 
pero en BASIC es como si no existiese. 

Alfanumerico/Alfamerico Alphanumeric/ Alphameric 

No usado en BASIC. Sf en otros lenguajes donde es atributo de un dato 
cuando puede incluir caracteres literales (alfabeticos) y numerales. El 
equivalente en BASIC son los "lfteros". 

Algebra de Boole Boolean algebra 

Estructura de matematicas con proposiciones y relaciones logicas que 
solo pueden tener dos respuestas: cierto o false En estrecha relacion 
con el sistema binario, simbolizando con 1 y respectivamente. 

Algoritmo Algorithm 

De la misma raiz arabe que 'guarismos', designa la secuencia de 
operaciones aritmetico-logicas que detalla el metodo a seguir para ejecutar 
una determinada tarea. 

AMSOFT AMSOFT 

Division especializada de AMSTRAD, suministrando programas, perifericos, 
y publicaciones primordialmente para el CPC464 y sus muchas aplicaciones. 

Analfabetismo moderno Iliteracy 

En breve plazo se considerara oficialmente analfabeto a aquel que no 
tenga conocimientos informaticos. 



Pagina G.l 



GLOSARIO 



Animacion Animation 

Tornado de los 'dibujos animados 1 . La animacion por ordenador esta basada 
en el movimiento de figuras y graficos para simular movimientos 'vivos'. 

Apreton (de manos) Handshaking 

Protocolo electronico entre dos ordenadores, o entre ordenador y periferico, 
antes del intercambio de informacion entre ellos. 

Argumento Argument 

Variable independiente de una funcion matematica (v.g. en la expresion 
z=x+lg(y) la y es el argumento de la funcion logarftmica que interviene). 

Arquitectura Architecture 

Estrategia en la construccion de un sistema informatico, organizando 
las relaciones y conexiones entre los diferentes equipos que lo componen. 
Tambien y en especial la estructura interna del ordenador con sus 
circuitos procesadores, memorizadores, canalizadores, etc. 

Arranque/'Botadura* Booting/Bootstrapping 

Puesta en marcha de la maquina. En especial cuando hay un pequeno 
programa grabado permanente e indeleblemente en la maquina, encargado 
de IMPLANTAR en memoria el sistema operativo del ordenador residente 
hasta entonces en un medio auxiliar de almacenamiento. 

ASCII American Standard Code for Information Interchange 

Convenio Internacional que establece la equivalencia entre codigos binarios 
y caracteres visivos y de control empleados en el intercambio de 
informacion entre equipos informaticos. 

Aviso Prompt 

Simbolo o mensaje tipico -la divisa- que caracteriza a un ordenador, 
e indica al usuario que esta preparado para recibir sus comandos e 
instrucciones. En el CPC464 es la palabra Ready (Dispuesto). 

Aleatorio Random 

Azar 

Fenomeno que no es predecible ni repetible. En los ordenadores suelen 
existir generadores de numeros aleatorios que realmente producen una 
secuencia de numeros reales tan grande que es practicamente imposible 
de apreciar la falsedad (los puristas le llaman pseudo-aleatorio). 

Barrido en rastrillo Raster scan 

Exposicion de imagenes visuales mediante varios haces proyectores que 
la recorren segun lfneas paralelas (en lugar del barrido habitual con un 
solo haz en zig-zag). 

Pagina G.2 * 



GLOSARIO ■ 



Base Base 

Cardinal del conjunto de si'mbolos sobre el que se constituye un sistema 
de numeracion. El sistema binario tiene base 2 (y emplea 2 si'mbolos); 
el decimal tiene base 10 (y 10 si'mbolos); y el hexadecimal base 16 (y 
16 si'mbolos). 

Base/Banco de datos Database 

Conjunto organizado de. datos, de diversas clases y heterogeneos, y 
accesibles por diversos conceptos, utilizados por varios ordenadores 
locales o remotos. 

BASIC BASIC 

Beginners All-purpose Symbolic Instruction Code. Lenguaje usado por casi 
todos los ordenadores personales, pensado en su origen para 
PRINCIPIANTES y ampliamente desarrollado por su facil aprendizaje y 
su capacidad de preparar programas y comprobar su funcionamiento 
a medida que se van perfeccionando. En la actualidad esta completamente 
evolucionado y ademas de principiantes es usado por programadores 
experimentados en todas las partes del mundo. 

Baudio Baud 

Unidad en un principio telegrafica para transferencia de senales binarias, 
expresada en intervalos por segundo. (En las transmisiones habituales 
coincide con bitos por segundo). 

BCD Binary Coded Decimal 

Sistema de representacion de los diez si'mbolos (di'gitos) del sistema de 
numeracion decimal en grupos de cuatro si'mbolos binarios. 

Binario Binary 

(Vea Base). Sistema de numeracion de base 2. 

Bico Byte 

Bito Bit 

Bitio Bit 

Cualquiera de los dos si'mbolos (0 y 1) usado en el sistema de 'numeracion 
binario se denomina bito. La unidad de informacion-incertidumbre de un 
suceso (relacionada con el logaritmo de la probabilidad del mismo) es 
el bitio, cuando el logaritmo se toma en base 2. 

El grupo de bitos tratados a la vez por los circuitos electronicos de los 
equipos informaticos se denomina bico. En los ordenadores personales 
con microprocesadores de OCHO BIToS es exactamente equivalente a 
octeto. 



Pagina G.3 



GLOSARIO 



Bit mas significativo MSB 

En un numero binario el bit anterior del numero (BAN) y que por tanto 
ocupa la posicion extremo-izquierda. Su peso es de 2 7 =128 (con bicos 
de 8 bits) y 2 15 =32768 (en 'bicos' direccionales de 16 bits). 

Bit menos significativo LSB 

En un numero binario en bit ulterior del numero (BUN) y que por tanto 
ocupa la posicion extremo-derecha. Su peso es de 2° = 1 (siempre). 

Bit interpretado (calibrado en binario) Bit significant 

Dato cuyo significado solo se obtiene hallando el equivalente binario e 
interpretando ios valores segun las posiciones en que aparezcan los unos 
y ceros. 

Bus Bus 

Haz de cables que recorre la totalidad de los circuitos electronicos de 
un equipo de proceso de datos, portando tensiones de alimentacion y senales 
de informacion de las que cada circuito usa las que le corresponde. En 
el CPC464 dicho bus o haz es accesible en el mas grande de los dos 
conectores impresos en la tarjeta situada en la parte posterior de la 
carcasa. 



L 



CAD 



GAD 



Habitualmente interaccion entre la potencia de computo y la capacidad 
grafica para constituir un tablero electronico de dibujo. 



CAE 



CAE 



Ensenanza asistida por ordenador, modismo de los muchos que se afiaden 
cada dfa, y que es difi'cil de separar del adiestramiento ayudado por 
ordenador (CAI) y del aprendizaje apoyado por ordenador (CAL). 

Captura de datos Data capture 

Termino que describe la obtencion y colecta de datos procedentes de 
cualquier fuente externa que son introducidos de alguna manera hacia 
el ordenador central. 



Caracter 



Character 



Cualquier simbolo con representacion grafica o que ejerza una determinada 
accion siempre y cuando tenga asociado intrihsecamente una representacion 
numerica interna. 

En el CPC464 se utilizan los 256 posibles con bicos de 8 bitos. 



Caracter grafico 



Graphic character 



Caracter de tipo visivo que no corresponde a las letras o signos habituales 
y que puede estar previamente grabado o ser disenado por el usuario. 

Pagina CA ■ 






GLOSARIO 



Cartucho 
Cassette 



Cartridge 
Cassette 



Cajita de innumerables formas que se inserta en un alojamiento adecuado. 
En informatica se suele reservar el termino 'cartuchos' para los que 
incluyen pastillas de semiconductores grabadas en forma permanente, 
indeleble (o deleble) con programas usualmente de juegos, vocabulario, 
etc. Y se reserva el termino 'cassette' para los que incluyen como soporte 
de informacion cinta magnetica trasladable entre los carretes en los dos 
sentidos. 



Cauce/Chorro 



Stream 



Tambien canal, flujo, ruta... El conducto por donde se encauza la 
informacion transferida entre los diversos organos que integran un 
ordenador. En ambos extremos del cauce suele haber un circuito de 
almacenamiento temporal - un buzon cuando los ritmos de emision de 
un equipo no coincide con el ritmo de admision del otro. 

Celdilla/Celula Character cell 

En relacion con la memoria se usa mas a menudo el termino celdilla para 
designar el sitio donde esta alojado un caracter. 

En relacion con la pantalla, se emplea mas habitualmente el termino 
'celula' para designar la posicion ocupada por un caracter. En el CPC464 
esta realmente formada por 64 motas dispuestas regularmente en 8 trazos 
horizontales con 8 motas por trazo. La iluminacion selectiva de las motas 
en uno u otro color determina el tipo del simbolo que aparece. 

Chip Chip 

Nombre popular (aunque muchos los llamamos 'pastillas' y "cucarachas" 
y los puristas 'circuitos integrados en una sola oblea de silicio') del 
microprocesador, las memorias, y demas... 



Circuitalia 



Hardware 



Todo los aparatos, equipos, cables, que puedes tocar y son 'duros'. 
Constituyen el soporte fisical de todo lo demas. 

Circuito integrado Integrated Circuit 

Componente electronico que incorpora centenares de diodos, transistores, 
resistencias, etc. cosntituyendo todo un circuito especializado en una 
funcion deter minada. 

Codigo Code 

Convenio generalmente numerico para representar informacion 
estableciendo relaciones biunivocas con los sfmbolos visibles en pantalla, 
impresora, teclado. 



Pagina G.5 — * 



Codigo barrado 

Mire cualquier paquete de jabon y tendra un ejempio. 

Codigo maquina 



GLOSARIO 



Bar code 



Machine Code 



Lenguaje de programacion que puede ser 'entendido* directamente por 
el microprocesador y los circuitos internos del ordenador (es una forma 
de hablar, solo entienden de electronica...). 



Comando 



Command 



Orden o mandato dado directamente al ordenador que por supuesto, 
inmediatamente obedece, a no ser que cometas un error de tecleado. 

Compilador Compiler 

Programa complejo que convierte y traduce programas escritos en 
lenguajes de 'alto nivel' para personas, en programas escritos en lenguajes 
de 'bajo nivel' para maquinas, consiguiendo asf una mayor rapidez de 
ejecucion. 



Con junto 



Array 



Mejor otros nombres como ringlas, tablas, arreglos, matrices, etc. para 
designar colecciones de datos homogeneos dispuestos regularmente a los 
que se les asigna un nombre generico y cuyos elementos pueden ser 
individualmente seleccionados usando un sufijo que guarda relacion con 
la posicion que ocupa dicho elemento. 



Conjunto de instrucciones 



Instruction set 



Mejor repertorio; para designar las operaciones y acciones individuales 
admitidas en un determinado lenguaje de programacion o en un determinado 
ordenador, constituyendo las palabras clave o reservadas. 

Los programas se escriben como series ordenadas de estas instrucciones, 
y el programa interpretador se encarga de examinarlas, y desglosarlas 
en las correspondientes series de operaciones que deben efectuarse 
internamente por los organos circuitales del equipo, en particular el 
microprocesador. 



Conversion A/D 



Analogic/Digital Conversion 



Las magnitudes cuyo cambio entre un punto inicial y uno final ocurre 
gradualmente y no de manera infinitesimalmente continua se denominan 
digitales o discretas. Los ordenadores son mecanismos discretos y digitales 
(aunque los hay analogicos) y por tanto, sus cambios de estado se producen 
a impulsos. La mayoria del mundo natural esta basado en principios 
analogicos (a nivel perceptible claro esta) por lo que en los ordenadores 
es necesario efectuar una conversion analogico-digital a la entrada para 
que el dato pase por sus portales de entrada. 



Pagina G.6 



# 



GLOSARIO 



Copia impresa Hard Copy 

Listado en papel de un programa, texto, o imagen grafica que aparece 
en pantalla. Su equivalente en un medio magnetico o electronico de 
almacenamiento se conoce como copia grabada (soft copy). 

CP/M CP/M 

Marca comercial de Digital Research para el sistema operativo mas 
ampliamente difundido en los ordenadores personales con microprocesadores 
de 8 bits. 

CPU Central Processing Unit 

Unidad Procesadora Central. Es el organo circuital encargado de recabar 
las instrucciones del programa de la memoria, examinarlas e interpretar 
su significado, y ejecutar o controlar su ejecucion por otros organos 
circuitales. 

Cursor Cursor 

Marca que 'corre' por toda la pantalla indicando la posicion en que 
aparecera el siguiente caracter. 

Cursor de graficos Graphics cursor 

Similar al cursor de textos, pero habitualmente 'corre sin que se le vea 1 , 
pero capaz de situar los graficos usando coordenadas mas precisas. No 
confundir con caracteres graficos. 

Depuracion Debugging 

La actividad de quitar las 'pifias' de un programa, mediante combinacion 
de metodos cientfficos, practicos y demas. 

Desrrolla/Despliega Scrolling 

Desplazamiento de la pagina de texto visible en pantalla hacia cualquiera 
de los costados o hacia la parte superior o inferior. El cursor no se 
desplaza de su posicion relativa, sino con toda la ventana de texto. 

Desrollador Mouse 

Artilugio en forma de rodillo o bola que logra el desrolle en pantalla 
por el simple rodamiento sobre su alojamiento en el teclado. 

Documentalea Paperware 

El conjunto de impresos, manuales, listados... que utilizan o generan los 
procesos informaticos. 



Pagina G.7 



GLOSARIO- 



Editar 

Editor de plana 

Editor de Uhea 



Edit 

Screen editor 

Line editor 



En el mundo informatico editar es primordialmente enmendar, corregir, 
arreglar... las instrucciones de un programa. Dependiendo de las facilidades 
del sistema se puede hacer desplazando el cursor por todas las partes 
de la pantalla, o es preciso designar el numero de lihea que se desea 
cambiar. En el CPC464 tienes la posibilidad de tratar con ambos 'editores 1 . 



Error sintactico 



Syntax error 



Popularfsimo mensaje de error recibido cuando se infringe una o muchas 
de las reglas gramaticales que estan convenidas. 



Ex-lfnea 



Off line 



Estado en que se encuentra un periferico del ordenador cuando no esta 
ligado directamente al ordenador, o no es accesible en ese momento por 
alguna causa. 



Generador de sonido 



Sound generator 



El conjunto de circuitos internos del sistema capaz de crear ruidos y 
sonidos en base a los parametros y senales enviadas por el microprocesador, 

Impresora Printer 

Uno de los primeros perifericos que adquieres. 

Ingenierfa de computacion 

Una expresion grandiosa en ingles para indicar programacion y que no 
suena tambien en otros idiomas. 



Software engineering 



In-lihea 



On-line 



Estado en que se encuentra un periferico cuando si' esta ligado directamente 
al ordenador y ademas es accesible en ese momento. 



Interface/Interfase 



Interface 



Frontera donde se 'encaran' las senales de dos equipos cualesquiera, o 
en donde tiene lugar el cambio de una etapa a otra en un proceso. 
Es el nexo de union. Se suele hablar de interface hombre-maquina para 
designar la manera en que se relacionan y los medios utilizados. 



Interface serie 



Serial interface 



Modo de acoplamiento entre dos equipos que se transfieren informacion, 
en que se descompone el dato a nivel de bit y se envian sucesivamente 
a traves de un conductor dichos bits. Con los ordenadores personales casi 
siempre hace referenda a la norma RS232, aunque existen otras. 



Pagina G.8 



GLOSARIO 



Interface paralelo Parallel interface 

Modo de acoplamiento entre dos equipos que se transfieren informacion, 
en que se envfan simultaneamente por varios conductores los bits que 
componen un dato. La transferencia es mucho mas rapida que con una 
interface serie. 

El CPC464 lleva incorporados los circuitos necesarios para poder conectar 
directamente impresoras con esta clase de interface. 

Lapiz luminoso Light pen 

Mecanismo con dicha forma que permite ingresar datos expuestos en 
pantalla seflalandolos simplemente con el extremo puntiagudo. Tambien 
hay versiones que permiten leer directamente codigos de barras, caracteres 
opticos y hasta letra de imprenta normal. 

Es algo asf como el famoso dedo de E.T. 

Lazo/Bucle Loop 

Situacion empleada en un programa para hacer que el ordenador se dedique 
a dar rondas y mas rondas a la misma serie de instrucciones (muchas 
veces sin que pretendieramos eso...). 

Legible por maquina Machine readable 

Un soporte de informacion que puede ser inmediatamente admitido en 
un ordenador sin ningun tecleo adicional. 

Lenguaje de bajo nivel Low-level language 

Se aplica a aquellos lenguajes de programacion, tal y como el de 
ensamblaje con un microprocesador dado, en que cada una de las 
instrucciones escritas por el programador es casi un reflejo exacto de 
las que acepta el microprocesador. 

Lisp LISt Processor language 

Procesador de listas; es otro de los lenguajes de 'alto nivel 1 . Especializado 
en manejar textos y sartas de caracteres. 

Logica (electronica) Logic 

Nombre generico de los componentes electronicos que llevan a cabo 
operaciones de logica aritmetica y logica comparativa, y a partir de los 
cuales se construyen los organos circuitales del ordenador. 

Logo Logo 

Otro lenguaje de alto nivel simple de aprender y orientado hacia el 
desarrollo de graficos, empleando preferentemente tecnicas recursivas. 
Se esta popularizando en las escuelas infantiles como ayuda a la ensenanza 
de informatica. 

Pagina G.9 — 



•GLOSARIO 



LSI Large Scale Integration 

Pastillas en que el numero de elementos de logica electronica incorporados 
es grande, por supuesto mayor que en los MediumSI, que a su vez es mayor 
que los SmallSI, en que es pequeno (que son cientos). 

Mapa de memoria Memory map 

Diagrama mostrando el reparto de memoria en diversas areas reservadas 
para funciones determinadas, tablas de variables, programa ejecutandose, 
interpretador BASIC, etc. 

Matriz Matrix 

Vease Conjunto. Usado ademas de en matematicas, para designar el 
conjunto de agujas que forma el cabezal de escritura en las impresoras 
matriciales. (Aunque la mayoria de ellas solo poseen un par de hileras 
como mucho). 

MEL RAM 

Designa con mayor propiedad a la Memoria de Escritura y Lectura que 
posee el ordenador, ya que el termino original ingles Random Access 
Memory puede dar lugar a confusiones. Vease MUL. 

MEMOrandum REM 

Lo que sirve de recordatorio. En el BASIC la palabra clave es REM. 

Memoria Memory 

El conjunto de circuitos electronicos que organizados a manera de 'panal 
de celdillas 1 permite al procesador senalar la direccion de cada celdilla 
y alojar o extraer informacion de ella. Vease MEL y MUL. 

Menu Menu 

La 'carta' con que un programa te ofrece los 'platos' que puede servir. 

Micrpprocesador Microprocessor 

El causante de la popularizacion del ordenador y el circuito integrado 
encargado de controlar todos los demas que componen el ordenador. 

Modem Modem 

Acronimo de modulador y demodulador, que son los procesos a efectuar 
para pasar de un medio de transmision a otro, v.g. del ordenador a la 
linea telefonica, y viceversa. 



Pagina G.10 



GLOSARIO- 



Modo de graficos Graphics mode 

Antiguamente, los ordenadores necesitaban ser modificados y ampliados 
para poder realizar dibujos y pintar figuras en la pantalla. Los ordenadores 
personales, actualmente pueden (unos mas y otros menos) mezclar text'os, 
numeros y graficos sin mas que pulsar una tecla o darles un comando. 

Modulador UHF UHF modulator 

Equipo mediante el cuai las senales de video del ordenador son 
transformadas para adecuarlas a las normas establecidas para la 
transmision en Ultra High Frecuency en television. 

Monitor Monitor 

Debfa reservarse para designar el equipo que muestra la informacion: 
la pantalla; pero tambien se usa para designar el programa que permite 
controlar y observar la operacion del ordenador trabajando en codigo 
maquina. 

Mota Pixel 

La minima area accesible de la pantalla que puede ser iluminada en uno 
u otro color. (Pixel es acronimo de picture element). 

MUL ROM 

Memoria Unicamente de Lectura. MUL designa con mayor propiedad a 
la memoria del ordenador que viene grabada de fabrica. El termino 
original ingles Read Only Memory, es perfectamente valido, pero da la 
casualidad que la ROM es una memoria de acceso Random tambien. 

Notacion decimal Decimal notation 

Notacion hexadecimal Hexadecimal notation 

Aunque el fundamento de los ordenadores es la notacion binaria, tambien 
se usa el sistema en base 10 con sus digitos 0, 1,2, 3, 4, 5, 6, 7, 8, 9 
y todo lo demas. 

Todo numero puede expresarse tambien en cualquier otra base y la mas 
util en los ordenadores personales es la base 16, que en el CPC464 se 
puede usar directamente mediante el prefijo & o &H. (Y la binaria 
tambien, mediante el prefijo &X). 

Notacion polaca inversa Reverse polish notation 

Metodo usado internamente para las operaciones aritmeticas y que algunos 
fabricantes propugnan con sus calculadoras. Es polaca por su origen, e 
inversa porque los signos de operacion se colocan despues de los operandos. 
Extremadamente util. 



Pagina G.ll 



GLOSARIO 



Numeros reales 



Real numbers 



Conjunto de numeros formados por los enteros positivos y negativos, los 
racionales (3, 4) y los irracionales (it, e) el problema es que la llamada 
parte decimal de un numero puede confundirte porque se refiere realmente 
a la parte fraccionaria (la que esta detras de la coma (hispano-parlantes) 
y detras del punto (anglo-parlantes)). 

OCR Optical Character Recognition 

Un medio de leer caracteres impresos o manuscritos con una lectora 
optica para transferirlos a un soporte de informacion legible por la 
maquina. 

Octal Octal 

Sistema numerico de base 8, con 8 sfmbolos posibles (0 a 7) que en binario 
se representa por 3 bitos. 



PASCAL 



PASCAL 



Lenguaje de alto nivel que empieza a ser asequible en los ordenadores 
personales. 



Periferico 



Peripheral 



Primitivamente todos los equipos situados en la periferia del ordenador 
central como consolas, impresoras, ductoras de cinta y de disco, etc. 
Actualmente, solo estan en la periferia desde un punto de vista conceptual, 
pero materialmente pueden formar parte del ordenador, en especial 
teclados y ductoras de cinta para mejor aprovechamiento. 



Pinzar 



PEEK 



Accion de sacar de su celdilla de memoria el contenido para aprovecharlo, 
simplemente fisgar, o examinar como se puede copiar un programa. 



Portabilidad 



Portability 



Atributo para designar la mayor o menor facilidad que tiene un programa 
para ser traspasado de un sistema a otro. 



Portal 



Port 



Tambien 'puerto' y 'compuerta'. Un sitio directamente direccionable por 
el procesador y similar por tanto, a una celdilla de memoria en alguna 
manera, que permite la entrada y salida de datos del mundo exterior. 



Portor 



Sprite 



No es un refresco. Sino el mecanismo por el que se Uevan las figuras 
por toda la pantalla de un lado a otro. Y no hay 'espiritus', 'duendes', 
ni 'meigas' que valgan; es necesario trabajar bastante. 



Pagina G.12 



GLOSARIO- 



Programa Program 

Serie detallada y ordenada exactamente que gobierna el funcionamiento 
de todo ordenador. 



Programa de aplicacion 



Applications program 



Un programa con una labor especi'fica que realizar, concretamente para 
realizar un proceso determinado y en contraposicion con los utensilios 
de programacion y operacion, tales como programas compiladores, 
interpretadores, gestores de impresoras, ductoras de cassette, etc. que 
realizan tareas generales y ayudan a la programacion y operatoria de 
un sistema. 

Programacion estructurada Structured programming 

Metodos y tecnicas de programacion sistematica partiendo de un analisis 
de la labor general y desglosandola en las tareas que la componen. 

Programalia Software 

Todo lo referente al aspecto logical del funcionamiento de los ordenadores. 
Vease Circuitalia. 

PROM ProgrammableROM 

Memoria Unicamente de Lectura de la que puede borrarse la informacion 
y volverse a "escribir" utilizando equipos relativamente simples y baratos. 



Puertas 



Gates 



Componentes electronicos que realizan las funciones logicas primarias 
tales como YLIacion (AND), OLIacion (OR), OLEacion (XOR), NegaciOn 
(NO)... No confundir con los portales. 



Punzar 



POKE 



AcCion de meter -hincar- en una determinada celdilla de memoria un 
determinado valor. Vease Pinzar. 



Reconocimiento de la voz 



Speech recognition 



Investigaciones y estudios para que sirva directamente el habla como 
entrada de datos al sistema ordenador; que ya empiezan a traducirse en 
equipos comerciales. 

Recursion Recursion 

Variante fundamental de los bucles e iteraciones usadas en programacion 
que viene a consistir en algo asf como lo que siempre se prohibfa. 

Lo definido no puede entrar en la definicion. 



Pagina G.13 



GLOSARIO- 



Redes 



Networks 



Dos o mas ordenadores estrechamente enlazados para el intercambio de 
datos e informaciones. 



Registro 



Register 



Con lenguajes de alto nivel es una ficha de un fichero. 

En la maquina circuitos especiales para manipulacion de los octetos e 

incluidos normalmentei dentro del propio microprocesador. Vease 

Acumulador. 



Resolucion 



Resolution 



La capacidad para discriminar las motas y trazos componentes de una 
figura. Algunas veces aplicado impropiamente a la 'precision' con que 
los niimeros se manejan internamente. 



Ruido 



Noise 



Ademas del significado normal, hace referenda a las posibilidades de 
algunos ordenadores para simular explosiones, bombazos, disparos, etc. 
y algunos, el CPC^64 entre ellos, son expertos. 



Rutina 



Routine 



PARRAFO de un programa que realiza una tarea concreta y deter minada 
y que puede existir como 'modulo' incorporable en diferentes programas. 
Suele emplearse para aquellas tareas 'rutinarias' que se ejecutan 
constantemente en un programa. 

Salida Output 

Todo lo que el ordenador pone fuera de sus dominios. 

Sarta String 

Tambien 'cadena', 'ristra', 'letrero'... En BASIC el concepto es fundamental 
y representa series de caracteres cualesquiera que se "entrecomillan" 
para indicar que han de tomarse letra a letra y no ser interpretados 
en absolute Por contraposicion a numero, tambien se les llama lftero. 



Sentencia 



Statement 



Termino cayendo en desuso por razones obvias. Se prefiere 'declaraciones' 
cuando son instrucciones en el programa que enuncian la clase de variables 
a usar, las tablas y ficheros, etc. 



Separador 



Separator 



Suelen ser los signos«de puntuacion habituales ,.;:... que permiten 
separar clausulas dentro de una frase o datos en una lista. 



Pagina G.14 



GLOSARIO • 



Operador Operator 

A parte de tu mismo cuando estas ante la maquina, se refiere a los 
signos que indican la clase de operacion a efectuar + -*/*( )... 



Simulacion 



Simulation 



Una tecnica para remedar situaciones de la vida real usando el ordenador, 
en sistemas utiles para el aprendizaje practico o analisis y previsiones 
de future 



Sintetizador de voz 



Speech synthesis 



Estudios, investigaciones y equipos que permiten generar los fonemas, 
palabras y frases del habla humana. 



Sistema operativo 



Operating system 



Conjunto de programas residentes permanentemente en memoria o 
implantados desde la memoria auxiliar, encargados de las labores 
'domesticas' del sistema del que viene a ser gobernador. 



Overwrite 



Sobre-escribir 

No es reescribir sino mas bien escribir encima de algo, borrando o no 
lo que hubiera. 

Subrutina Subroutine 

Vease Rutina. 

Tabla de verdad Truth table 

Diagrama que muestra en un solo bloque los operandos y los resultados 
de una operacion logica, y a pesar del nombre, se suele usar un 1 para 
indicar cierto y un para indicar falso. 

Tablero grafico Graphics tablet 

Artefacto mas o menos rectangular con una amplia superficie plana para 
que lo dibujado sobre el mismo sea directamente transferido al ordenador. 



Tecla programable 
Tecla funcional 



Soft key 
Function key 



Una tecla a la que se le puede asociar una funcion a voluntad. 

El CPC464 dispone de una amplia variedad, y con capacidad para enviar 

hasta 32 caracteres con una sola pulsacion. 



Teclado 

Teclado numerico 



Keyboard 
Numeric keypad 



Lo que estas pulsando continuamente y que para mayor facilidad en el 
CPC464 se presenta en dos grupos separados, despues de haber tenido 
en cuenta todos los factores ergonomicos. 
— — — Pagina G.15 



•GLOSARIO- 



Teclado QWERTY QWERTY Keyboard 

Observa el de una maquina de escribir y veras que al lado de la Q esta 

la W, luego la E, luego la R y la T, y le sigue la Y, y si no, no es QWERTY. 



L 



Terminal inteligente 



Itelligent terminal 



Equipo donde ademas de satisfacer las necesidades de entrada y salida 
de datos, dispone tambien de capacidad de proceso propia. 

Terminal tonto Dump terminal 

Simplemente no tiene la 'mollera' que tiene el anterior. 

Tiempo real Real time 

Cuando el ordenador proporciona respuestas a nuestras entradas de manera 
que podemos inmediatamente tomar las decisiones pertinentes, decimos 
que el ordenador trabaja en tiempo real. Si tenemos que aguardar a que 
concluya el proceso que esta efectuando para poder actuar, es que trabaja 
en diferido. 



Transferencia descendente 



Download 



En una red de ordenadores es la transferencia desde el ordenador central 
hacia los perifericos. Cuando la transferencia es en sentido contrario, 
es ascendente (Upload). 



Trazadora 



Plotter 



Una clase especial de impresora que desplaza el papel en todos los 
sentidos y suele usar pluma o chorros de tinta en lugar de agujas de 
impacto. Usada primordialmente para dibujos tecnicos. 

Unidad aritmeticologica ALU 

Incorporada en el microprocesador generalmente y a veces como circuito 
electronico separado, es el especialista en realizar dichas operaciones, 
recibiendo los operandos del microprocesador y suministrando los 
resultados de la operacion. 

Utensilio (de programacion) Utility 

Programa y conjunto de programas que se usa frecuentemente para llevar 
a cabo tareas comunes en todos los ordenadores como copias ficheros, 
mantener catalogos, etc. 



Variable 



Variable 



El elemento fundamental manejado por un programa que corresponde a 
un sitio de la memoria identificado por un 'nombre concreto' y donde 
se aloja el dato asociado. 



Pagina G.16 



Palabras reservadas, codigos de ERROR 



Apendice VIII: 



Codigos de error y palabras reservadas 

Numeros y mensajes de error 

Cuando BASIC encuentra una instruccion, palabra o variable en una li'nea 
del programa que no puede interpretar ni ejecutar, detendra el programa 
y mostrara un mensaje de error. La forma del mensaje indicara 
generalmente lo que esta equivocado, y algunas veces si el error es un 
error tipografico al escribir el programa, el BASIC pasara automaticamente 
al modo edicion, mostrando la li'nea donde ha detectado el error. 

El mensaje mas popular entre los usuarios descuidados es el 'Error 
sintactico' (numero 2) y el BASIC lo muestra junto con la li'nea que debera 
EDITAR si detecto el error al ejecutar el programa. En el modo directo, 
cuando le impones comandos, simplemente declara que ha detectado un 
error, y presupone que la ultima li'nea tecleada es visible y por tanto 
puedes examinarla en busca del problema. 

Si has incluido al comienzo del programa la instruccion ON ERROR GOTO 
para que SEGUN error VAYA..., a un determinado numero de lfnea en 
que comienza el tratamiento de errores, dara un salto a ese parrafo 
inmediatamente que detecte el error, y antes de sacar sus mensajes 
prescritos. En el ejemplo, el ordenador saltara a la li'nea 1000 al detectar 
un error: 

10 ON ERROR GOTO 1000 
prwjraa 

1000 PRINT CHR*(7) :M0DE 2: INK 1,0: INK 0,9: CLS :LIST 

Y en este caso, ante el error, el CPC464 emitira un pitido, limpiara lo 
que haya en pantalla, y cambiara a la combinacion de colores mencionada 
y en el modo de imagen de 80 columnas, y luego listara el programa 
para que puedas examinarlo. Si el error es un error sintactico, aparecera 
al pie del listado la li'nea en que lo detecto, esperando que la corrijas 
(edites) aunque el mensaje habitual 

Syntax Error 

sera suprimido. (Recuerda colocar una instruccion END en la li'nea 
inmediatamente anterior a la 1000, si deseas conservar lo que tengas 
puesto en pantalla cuando el programa haya sido ejecutado normalmente). 



■Apendice VIII Pagina 1 



t 



Palabras reservadas, codigos de ERROR 



El BASIC no producira mensajes de error cuando las li'neas de programa 
ingresadas por teclado son validas; por lo tanto, debe suponerse que siempre 
que ocurre un error, puede ser RASTREADO siguiendo el hilo del programa, 
y habitualmente guiandose por los mensajes producidos durante el proceso 
de DEPURACION del mismo. Como en muchas otras situaciones, aprenderas 
mas y mejor analizando tus equivocaciones, y abusando del hecho de que 
el CPC464 es el mas tolerante de los 'tutores'. Te cansaras de ensayar 
mucho antes de que el CPC464 muestre signos de impaciencia. 

Todos los mensajes de error generador por BASIC, estan enumerados en 
este Apendice, ordenador por el numero de error pertinente. Tambien 
te presentamos una breve descripcion de las posibles causas. 

1 Unexpected NEXT 

Ha encontrado una instruccion que ie manda dar OTRA posible ronda 
deun bucle, 'inesperadamente' porque no estaba repitiendo nada; o la 
variable de control mencionada en la instruccion NEXT no concuerda 
con la mencionada en la instruccion FOR. 

2 Syntax Error 

Normalmente alguna palabra clave esta mal deletreada, o no hay igual 
numero de parentesis de cierre que parentesis de apertura en una expresion. 

3 Unexpected RETURN 

Se ha encontrado con una instruccion en que le pides VUELVA 'inesperada 1 , 
porque no se habia desviado en ningun momento anterior. 

k DATA exhausted 

Le mandas que 'apunte' el siguiente DATO y ya esta .'exhausta'... la serie 
de constantes que mencionas en el programa. 

5 Improper argument 

Tiene un significado general que indica que el valor del ARGUMENTO 
de una funcion es 'impropio', o que el parametro mencionado en una 
instruccion 'no es valido'. 

6 Overflow 

El resultado de una operacion aritmetica hace que se REBASE la gama 
de valores permitida a la variable. Puede corresponder a una variable 
real, en cuyo caso, en esa operacion se ha producido un valor mayor en 
valor absoluto que 1.7E-38 (aprox.). Tambien puede ser el resultado de 
un intento fallido de cambiar un numero real a un numero entero, cuando 
la parte entera del numero real se sale fuera de la gama -32768 a +32767. 



Apendice VIII Pagina 2 



Palabras reservadas, codigos de ERROR 



7 Memory full 

La memoria esta 'llena 1 . El programa es demasiado largo, o simplemente 
hay demasiadas variables, o innumerables 'desvi'os' y 'bucles'. 

El comando MEMORY dara este error si se intenta estipular un valor 
demasiado bajo como 'cima' de la memoria reservada a BASIC; o bien 
un valor imposiblemente elevado. Recuerda ademas, que al abrir un fichero 
se ocupa un determinado espacio en memoria para ser usado como buzon 
donde alojar los registros procedentes o con destino al fichero, y eso 
restringe la memoria disponible. 

8 Line does not exist 

Mencionas un numero de linea que no existe en el programa. 

9 Subscript out of range 

Uno de los SUFLJOS ('suscritos 1 o 'subindices') usado para seleccionar 
un elemento de una tabla, esta 'fuera de gama', por demasiado grande 
o demasiado pequeno. 

10 Array already dimensioned 

La tabla (RINGLA) que mencionas 'ya esta dimensionada 1 . Debes 
previamente hacer que LIBRE el espacio pertinente. (ERASE), 

11 Division by zero 

Con esos valores resulta una 'division por cero 1 . 

12 Invalid direct command 

Le estas dando un comando, usando una palabra clave que solo admite 
como instruccion, ie. precedida de un numero de linea. 

13 Type mismatch 

'Clase discordancia'. Das como valor de una variable literal una constante 
numerica, o viceversa. 

1* String space full 

Esta 'lleno el espacio' que internamente reserva para las 'sartas' de 
caracteres (LITEROS ENTRECOMILLADOS). Ya no dispone de mas espacio, 
incluso aunque haya hecho 'recogida de basura'. (Supresion de los viejos 
valores de las variables literales). 

15 String too long 

'SARTA demasiado larga', pues sobrepasa de 255 caracteres. Puede ser 



resultado del empalme de datos litericos. 



5 



-Apendice VIII Pagina 3- 



Palabras reservadas, codigos de ERROR 



16 String expression too complex 

Cuando las 'expresiones literales son demasiado complejas' porque pueden 
dar lugar a demasiados valores intermedios, que exceden de un li'mite 
razonable. 

17 Cannot CONTinue 

'No puede continuar'. Observa que el comando CONT es para hacer que 
SIGA un programa que se ha visto interrumpido por encontrar una 
instruccion STOP, que le hace que PARE; porque has pulsado ESC ESC 
para ESCAPAR; pero no para cuando ha detectado un error y EDITAS 
esa instruccion y luego quieres que continue. En esa situacion es imposible 
que SIGA con el programa en el punto en que se interrumpio. 

18 Unknown user function 

Esa funcion definible por el usuario es 'desconocida'. Necesitas avisarle 
previamente para que la USE. 

19 RESUME missing 

NO es que 'falte' el resumen. Lo que SI falta es la instruccion para que 
REANUDE en algun punto el programa despues de haberse visto "atrapado" 
en un error, que el propio programa se encarga de tratar. 

20 Unexpected RESUME 

NO es un 'inesperado' resumen. SI es que no puedes decirle 
'inesperadamente' que REANUDE cuando no se ha visto 'atrapado' en 
ningun error. Coloca una instruccion para que PARE o TERMINE antes 
de que llegue al parrafo pertinente. 

21 Direct command found 

Solo puede aparecer despues de CARGAR un programa desde el cassette, 
y es porque ha 'encontrado' un COMANDO (directo) y no una instruccion 
(con numero de li'nea delante). 

22 Operand missing 

En esa expresion 'falta' algun operando. 

23 Line too long 

'Li'nea demas ; ado larga'. 

2* EOF met 

Intentas tomar informacion del cassette, y te has 'topado' con el final 
del fichero. 



Apendice VIII Pagina 4 



Palabras reservadas, codigos de ERROR 



25 File type error 

'Error en la CLASE (tipo) de fichero'. El fichero que hay en la cinta 
no es de la clase adecuada. Observa que el comando OPENIN solo esta 
preparado para ABRIR como fichero de ENTRADA, ficheros con textos 
en caracteres ASCII; y que los comandos LOAD, RUN, solo estan 
preparados para ficheros con programas que previamente has hecho que 
GUARDE mediante el comando SAVE. 

26 NEXT missing 

No puede encontrar la instruccion que le mande hacer OTRA ronda, 
y estando dentro de un bucle. 

27 File already open 

Ese 'fichero ya esta abierto'. Quizas convenga decirle que lo CIERRE, 
mediante la instruccion CLOSED. 

28 Unknown command 
Comando 'desconocido 1 . 

29 WEND missing 

No puede encontrar la instruccion WEND que siempre tiene que haber 
en correspondencia con cada instruccion WHILE. 

30 Unexpected WEND 

Encontro una instruccion WEND sin estar dentro de un bucle WHILE. 



Palabras clave en el BASIC AMSTRAD 

Las siguientes, son las palabras clave en BASIC, y estan reservadas para 
significar exactamente lo que hemos descrito en esta gui'a. 

ABS, AFTER, AND, ASC, ATN, AUTO 
BIN*, BORDER 

CALL, CAT, CHAIN, CHR*, CINT, CLEAR, CLG, CLOSEIN, 
CLOSEOUT, CLS, CONT, COS, CREAL 

DATA, DEF, DEFINIT, DEFREAL, DEFSTR, DEG, DELETE, 
DI, DIM, DRAW, DRAWR 

EDIT, EI, ELSE, END, ENT, ENV, EOF, ERASE, ERL, ERR, 
ERROR, EVERY, EXP 

FIX, FN, FOR, FRE 



■Apendice VIII Pagina 5 



Palabras reservadas, codigos de ERROR 



GOSUB, GOTO 

HEX*, HIMEN 

IF, INK, INKEY, INKEY*, INP, INPUT, INSTR, INT 

JOY 

KEY 

LEFT*, LEN, LET, LINE, LIST, LOAD, LOCATE, LOG, LOG 10, 
LOWER* 

MAX, MEMORY, MERGE, MID*, MIN, MOD, MODE, MOVE, MOVER 
NEXT, NEW, NOT 

ON, ON BREAK, ON ERROR GOTO, ON SQ, OPENIN, OPENOUT, OR, 
ORIGIN, OUT 

PAPER, PEEK, PEN, PI, PLOT, PLOTR, POJE, POS, PRINT 

RAD, RANDOMIZE, READ, RELEASE, REM, REMAIN, RENUM, 
RESTORE, RESUME, RETURN, RIGH*, REND, ROUND, RUN 

SAVE, SGN, SIN, SOUND, SPACE*, SPC, SPEED, SQ, SQR, 
STEP, STOP, STR*, STRING*, SWAP, SYMBOL 

TAB, TAG, TAGOFF, TAN, TEST, TESTR, THEN, TIME, TO, 
TROFF, TRON 

UNT, UPPER*, USING 
VAL, VPOS 

WAIT, WEND, WHILE, WIDTH, WINDOW, WRITE 

XOR, XPOS 

YPOS 

ZONE 



I 



Apendice VIII Pagina 6 



ABS 8.4 

AFTER 8.5; 10.1 

AND 4.18 

ASC 8.4 

ASCII 1.7; A.3.1 

ATN 8.5 

AUTO 4.19; 8.5 

BIN$ 8.5 

BORDER F3.3; 4.15; 8.6 

CALL 8.6 

CAPS LOCK F2.3 

CAT 8 6 

CHAIN , CHAIN MERGE 8.7 

CHR$ F3.9; 1.8 

CINT 8.8 

CLEAR 8.8 

CLG 8.9 

CLOSEIN 8.9 

CLOSEOUT 8.9 

CLR F2.3 

CLS F2.5; 8.9 

CONT 4.7; 8.10 

COPY F2.ll; 1.19 

COS 8.10 

CREAL 8.11 

CTRL 1.9; 9.2 

DATA 4.18; 8.11 

DEF FN 8.12 

DEFINT, DEFREAL, DEFSTR 8.12 

DEC 8.12 

DEL F2.1 

DELETE 8.13 

DI 8.13 

DIM 4.15; 8.14 

DRAW F3.13; 8.15 

DRAWR F3.13; 8.15 

EDIT F2.10; 1.19; 8.15 

EI 8.16 

END 8.16 

ENT F3.20; 8.16 

ENTER F2.1; 1.10 

ENV F3.19; 8.18 

EOF 8.20 

ERASE 8.20 

ERL, ERR 8.20 

ERROR 8.21; A.8 

ESC F2.4 

EVERY 8.21; 10.3 



INDICE - 1 






EXP 8.22 

FIX 8.22 

FOR F2.13; 8.22 

FRE 8.23 

GOSUB F3.16; 8.23 

GOTO F2.7-, 8.23 

HEX$ 8.24 

HIMEM 8.24 

IF F2.12; 4.13; 8.24 

INK F3.5; 8.25 

INKEY 8.25 

INKEY$ 8.26 

INP 8.26 

INPUT F2.8; 8.27 

INSTR 8.28 

INT 8.28 

JOY 8.28 

KEY 8.29 

KEY DEF 8.29 

LEFT$ 8.30 

LEN 8.30 

LET 8.31 

LINE INPUT 8.31 

LIST F2.7; 1.16; 8.31 

LOAD 8.32 

LOCATE F3.9; 4.12; 8.32 

LOG 8.33 

LOG 10 8.33 

LOWER$ 8.34 

MAX 8.34 

MEMORY 8.34 

MERGE 8.35 

MID$ 8.35 

MIN 8.36 

MOD 4.2 

MODE F3.1; 8.36 

MOVE 8.36 

MOVER 8.37 

NEW F3.14; 8.37 

NEXT F2.13; 8.38 

NOT 4.22 

ON BREAK GOSUB 8.39 

ON BREAK STOP 8.39 

CN ERROR GOTO 8.40; A.8 

ON GOSUB ON GOTO 8.38 

ON SQ GOSUB 6.12; 8.40 

OPENIN 8.41 

OPNEOUT 8.41 

ORIGIN F3.15; 8.42 



INDICE - 2 



OUT 8.42 

PAPER F3.2; 8.43 

PEEK 8.43 

PEN F3.2; 8.44 

PI 8.48 

PLOT F3.12; 8.45 

PLOTR 8.45 

POKE 8.46 

POS 8.46 

PRINT F2.6; 8.47 

RAD 8.47 

RAM A.4 

RANDOMIZE 8.47 

READ 8.48 

RELEASE 8.48 

REM 8.48 

REMAIN 8.49 

RENUM 8.49 

RESTORE 8.50 

RESUME 8.50 

RETURN F3.16; 8.51 

RIGHT$ 8.51 

RND 8.51 

ROUND 8.52 

RUN F2.6; 8.52 

SAVE F1.12; 8.53 

SGN 8.54 

SHIFT F2.1 

SIN 8.54 

SOUND F3.17; 6.1; 8.54; A.3; A.7 

SPACE$ 8.55 

SPC 8.69 

SPEED INK 8.55 

SPEED KEY 8.56 

SPEED WRITE 8.56 

SQ 6.12; 8.57 

SQR 8.57 

STEP F2.13 

STOP 8.58 

STR$ 8.58 

STRING$ 8.58 

SYMBOL 8.59 

SYMBOL AFTER 8.59 

TAB 3.8; 8.70 

TAG 8.60 

TAGOFF 8.60 

TAN 8.61 

TEST 8.61 

TESTR 8.61 



INDICE - 3 



■^ 



THEN F2.12; 
TIME 8.62 
TO F2.13 

TRON, TROFF 8.62 
UNT 8.62 
UPPER$ 8.63 
USER PORT A.5 
USING 3.8; 8.71 
VAL 8.63 
VPOS 8.64 
WAIT 8.64 
WEND 8.65 
WHILE 8.65 
WIDTH 8.66 
WINDOW 5.12; 8.66 
WRITE 8.67 
XOR 4.22 
XPOS 8.67 
ZONE 3.8; 8.68 



• 



INDICE - 4 






k!&. 



^